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 이렇게 갔다놓고
쿼리로 데이블을 읽어서 그리드에 뿌려주었습니다.
그리드에 내역이