Q&A

  • DB에서 에러가 납니다. 왜 그런지...
    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;


왜 그런지 이유를 말씀해주세요
해결방법도 말씀해주시면 감사하겠습니다
부탁드립니다
1  COMMENTS
  • Profile
    물고기나라 2003.10.07 19:52
    업데이트 SQL을 쓰시나 보내요.
    이건 편리하긴 한데 융통성이 좀 없어서 제가 잘 안쓰는지라

    참고만 하세요. ^^;;;
    에러문구가 업데이트중 에러라고 나온걸로 바서는 추가하고 엔드업데이트라던지 뭔가 빠진듯 싶네요.

    제가 이전에한걸 보니 이런게 있네요.

    procedure TFORM1.qrMainBeforeOpen(DataSet: TDataSet);
    begin
      rdbgMain.BeginUpdate;
    end;

    procedure TFORM1.qrMainAfterOpen(DataSet: TDataSet);
    begin
      rdbgMain.EndUpdate;
    end;

    업데이트SQL하고는 안친해서 전 무식하게 필요한 작업을 함수로 다 빼버리고 코딩합니다. ^^;;;