Q&A

  • DBGrid 에서 직접 입력,수정....
DBGrid 셀에서 직접 데이타를 수정하고 또 입력하려고 합니다.

그래서 Q&A에서 검색을 해보니 아래의 답이 있습니다.



=================================================================

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

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

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



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

private

{ Private declarations }

DataSetState : TDataSetState;

public

{ Public declarations }



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);



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

도움이 되셨기를...

=================================================================

위의 답글에서

1번 항목에서

"UpdateSQL의 내용을 설정하세요.." 이것이 몬 말인가요?

폼에 UpdateSQL 하나 가져다 놓고 더블클릭하면 Edit창이 뜨는데...

그 넘을 어떻게 사용하는지.... 당췌....



4번 항목에서 수정, 입력이 되는것 같은데

저의 경우는 폼에 Query, DataSource, DBGride,UpDataSQL 이렇게 갔다놓고

쿼리로 데이블을 읽어서 그리드에 뿌려주었습니다.

그리드에 내역이
0  COMMENTS