with DataMd.MyQry do
begin
if Locate('group_head;group_detail',VarArrayOf(['A00001',edt_code.text]),[loCaseInsensitive] ) then
begin
//if Locate('group_detail',edt_code.text,[loPartialKey] ) then
Edit ;
//showmessage('efdit');
end
else begin
Append;
// showmessage('insert');
//exit;
end;
// exit;
fieldbyname('group_head').asString := 'A00001';
fieldbyname('group_detail').asString := edt_code.text;
fieldbyname('group_detail_name').asString := edt_name.text;
Post;
end;
그리드는 디비그리드를 사용해서 위와 같이 코딩을 했습니다
그런데 추가는 잘 되는데 수정이 안됩니다.
'Error while posting updates'라는 에러가 납니다
'
그래서 아래와 같이 고쳤습니다
with DataMd.MyQry do
begin
if Locate('group_head;group_detail',VarArrayOf(['A00001',edt_code.text]),[loCaseInsensitive] ) then
begin
//if Locate('group_detail',edt_code.text,[loPartialKey] ) then
Edit ;
//showmessage('efdit');
end
else begin
Append;
//////////////////// 수정부붅 ///////////////////////
fieldbyname('group_head').asString := 'A00001';
fieldbyname('group_detail').asString := edt_code.text;
///////////////////////////////////////////////////////
end;
// exit;
fieldbyname('group_detail_name').asString := edt_name.text;
Post;
end;
왜 그런지 이유를 말씀해주세요
해결방법도 말씀해주시면 감사하겠습니다
부탁드립니다
이건 편리하긴 한데 융통성이 좀 없어서 제가 잘 안쓰는지라
참고만 하세요. ^^;;;
에러문구가 업데이트중 에러라고 나온걸로 바서는 추가하고 엔드업데이트라던지 뭔가 빠진듯 싶네요.
제가 이전에한걸 보니 이런게 있네요.
procedure TFORM1.qrMainBeforeOpen(DataSet: TDataSet);
begin
rdbgMain.BeginUpdate;
end;
procedure TFORM1.qrMainAfterOpen(DataSet: TDataSet);
begin
rdbgMain.EndUpdate;
end;
업데이트SQL하고는 안친해서 전 무식하게 필요한 작업을 함수로 다 빼버리고 코딩합니다. ^^;;;