테이블을 불러서 자료를 수정하고...
수정버튼을 누르면...
다른 부분은 다 지워지고고...
gubun 필드와 yymd 필드만 남는데...
gubun 필드와 yymd 필드는 검색 키 입니다
제가 만든 소스를 올릴테니..
한번보고 틀린데를 알려주세요...
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 생산통계 자료 수정
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
procedure TFrmComn.BBtnUpdClick(Sender: TObject);
var
i : integer;
begin
with Qry1 do
begin
close;
sql.clear;
sql.add('select * from jaksi');
sql.add('where gubun = :gubun');
sql.add('and yymd = :yymd');
ParamByName('gubun').Asstring := Inttostr(RadioGroup1.ItemIndex);
ParamByName('yymd').Asstring := MEdit1.Text;
open;
StringGrid1.RowCount := RecordCount;
for i := 1 to StringGrid1.RowCount - 1 do
begin
close;
sql.clear;
sql.add('update jaksi');
sql.add('set jiyouk = :jiyouk,');
sql.add(' moun = :moun,');
sql.add(' saeng = :saeng,');
sql.add(' dansu = :dansu');
ParamByName('jiyouk').Asstring := StringGrid1.Cells[0,i];
ParamByName('moun').Asstring := StringGrid1.Cells[1,i];
ParamByName('saeng').Asstring := StringGrid1.Cells[2,i];
ParamByName('dansu').Asstring := StringGrid1.Cells[3,i];
ExecSQL;
end;
end;
SBarMsg.Panels[0].Text := '수정되었습니다.';
end;
소스입니다...
알려주세요
> 테이블을 불러서 자료를 수정하고...
> 수정버튼을 누르면...
> 다른 부분은 다 지워지고고...
> gubun 필드와 yymd 필드만 남는데...
> gubun 필드와 yymd 필드는 검색 키 입니다
> 제가 만든 소스를 올릴테니..
> 한번보고 틀린데를 알려주세요...
>
> //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> // 생산통계 자료 수정
> //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> procedure TFrmComn.BBtnUpdClick(Sender: TObject);
> var
> i : integer;
> begin
> with Qry1 do
> begin
> close;
> sql.clear;
> sql.add('select * from jaksi');
> sql.add('where gubun = :gubun');
> sql.add('and yymd = :yymd');
> ParamByName('gubun').Asstring := Inttostr(RadioGroup1.ItemIndex);
> ParamByName('yymd').Asstring := MEdit1.Text;
> open;
>
> StringGrid1.RowCount := RecordCount;
> for i := 1 to StringGrid1.RowCount - 1 do
> begin
> close;
> sql.clear;
> sql.add('update jaksi');
> sql.add('set jiyouk = :jiyouk,');
> sql.add(' moun = :moun,');
> sql.add(' saeng = :saeng,');
> sql.add(' dansu = :dansu');
>
> ParamByName('jiyouk').Asstring := StringGrid1.Cells[0,i];
> ParamByName('moun').Asstring := StringGrid1.Cells[1,i];
> ParamByName('saeng').Asstring := StringGrid1.Cells[2,i];
> ParamByName('dansu').Asstring := StringGrid1.Cells[3,i];
> ExecSQL;
> end;
> end;
> SBarMsg.Panels[0].Text := '수정되었습니다.';
> end;
>
> 소스입니다...
> 알려주세요
저는 델파이로 회계관리프로그램을 만들고 있구요.. 코딩상에는 문제가 없는 것 같은데 실제 테이블에 저장이 안되는 경우를 많이 있어거든요.
제 생각에는요
sql을 이용한 경우에는 변경된 내용이 테이블에 저장되기전에 메모리상에서 먼저 변경이 이루어집니다. 따라서 메모리상에서는 저장이 되었던 것이 프로그램이 종료되면서 테이블에 저장되지 않고 메모리에서 해제되어버리는거죠.
그래서 저는 쿼리컴포넌트를 폼에 올리지 않고 코딩으로 생성해서 사용하고 사용이 끝나면 메모리에서 해제시켜주는 방법으로 했습니다.
생성방법을 혹시 모르시면 아래 참고하시구요.
procedure .....
var
Query:TQuery; //선언
begin
Query:=TQuery.create(self); //생성
Query.databasename:='경로명';
..
..
..
Query.close;
Query.free; //메모리에서 해제
end;
조금이나마 도움이 되시기를....