DBGrid에 데이타를 입력할 때 저는 다른 입력창을 만들어 입력하도록 해놓았는데
델파이 Q&A를 뒤지다가 DBGrid상에서 직접 입력하는 방법이 있다는것을 알게되었는데
어떻게 해야 하는지 책을 찾아봐도 알 수 없어 고수님의 도움을 청합니다.
DBGrid 콤퍼넌트 와 Procedure 를 좀 자세하게 해주시면 고압겠나이다.
저는 완전 초보라 방법만 가르쳐 주시면 이해가 안되기 때문에 좀 자세히
알려주시면 결초보은 하겠나이다.
오늘도 초보자의 앞길에 등불이 되어주시는 고수님들의 노고에 깊이 감사드립니다.
>
> DBGrid에 데이타를 입력할 때 저는 다른 입력창을 만들어 입력하도록 해놓았는데
>
> 델파이 Q&A를 뒤지다가 DBGrid상에서 직접 입력하는 방법이 있다는것을 알게되었는데
>
> 어떻게 해야 하는지 책을 찾아봐도 알 수 없어 고수님의 도움을 청합니다.
>
> DBGrid 콤퍼넌트 와 Procedure 를 좀 자세하게 해주시면 고압겠나이다.
>
> 저는 완전 초보라 방법만 가르쳐 주시면 이해가 안되기 때문에 좀 자세히
>
> 알려주시면 결초보은 하겠나이다.
>
> 오늘도 초보자의 앞길에 등불이 되어주시는 고수님들의 노고에 깊이 감사드립니다.
이게 도움이 되길 바랍니다..
이건 저번에 자료를 보다가 어떤 님이 올려 놓은글을 제가 가지고 있다가 지금 올립니다..
작성하신 분께 감사 드리세요 저두 어느분인진 잘 모르지만~~~~~`
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);
위와 같이 설정하시고 실행하시면 될겁니다.
도움이 되셨기를...
즐코딩하세여