Q&A

  • DBGrid 상에서 수정, 삭제, 삽입 할려고 하는 데여..
UpdateSQl을 써서 DBGRid상에서 수정, 삭제, 삽입을 할려고 하는 데여.

에러가 많이 발생해서 이렇게 질문을 올립니다.

삭제를 하면 그리드 상에선 지워지는 데 실제 데이터는 안 지워 지고요.

삽입할때도 한 개의 데이터를 입력했는 데도 여러개의 데이터가 입력되더라구요.

어떻게 된거죠..

제가 델파이 시작한지 별로 안되서요. 초보에여.. 고수님들의 많은 조언 부탁합니다.





1  COMMENTS
  • Profile
    돌머리 2000.09.26 04:12
    안녕하세요.. 김동원입니다..

    update sql을 사용하신다구요..



    1. Query의 cachedupdates프로퍼티를 true로 바꾸세요.

    //질문을 보니 현재 true로 되어 있는것 같네요.

    UpdateObject프로퍼티에 UpdateSQL을 연결하시고

    UpdateSQL의 내용을 설정하세요..

    2. 전역변수를 하나 만드세요..

    private

    { Private declarations }

    DataSetState : TDataSetState;

    public

    { Public declarations }

    end;//

    3. Qeury의 BeforeEditEvent와 BeforeInserEvent에 다음내용을 추가하세요

    DataSetState := DataSet.State;

    4. Query의 AfterPostEvent에 다음과 같이 넣어주세요..

    case( DataSetState )of

    dsEdit : UpdateSQL1.Apply(ukModify);

    dsInsert: UpdateSQL1.Apply(ukInsert);

    end;

    5. Delete에는 약간의 버그가 있습니다.

    그래서 편법으로 UpdateSQL의 DeleteSQL의 내용을 수정해야 합니다.

    조건에 보면 "필드명= :OLD_필드명"형식으로 되어있는것을

    "필드명 = :필드명" 형식으로 바꾸시고..

    BeforeDeleteEvent에 다음과 같이 넣어 주시면 됩니다..

    UpdateSQL1.Apply(ukDelete);



    위와 같이 설정하시고 실행하시면 될겁니다.

    도움이 되셨기를...





    호짐 wrote:

    > UpdateSQl을 써서 DBGRid상에서 수정, 삭제, 삽입을 할려고 하는 데여.

    > 에러가 많이 발생해서 이렇게 질문을 올립니다.

    > 삭제를 하면 그리드 상에선 지워지는 데 실제 데이터는 안 지워 지고요.

    > 삽입할때도 한 개의 데이터를 입력했는 데도 여러개의 데이터가 입력되더라구요.

    > 어떻게 된거죠..

    > 제가 델파이 시작한지 별로 안되서요. 초보에여.. 고수님들의 많은 조언 부탁합니다.

    >

    >