안녕하세요. 까마귀입니다.
거두절미하고 말씀드리겠습니다.
제가 밑에서 언급했던 Grid문제 때문에 UpDateSQL을 꼭 써야 겠습니다. UpDateSQL을 쓰니 그런 문제가 발생하지 않더군요.
그런데, 이 UpDateSQL을 사용하니 또 다른 문제가 생겼습니다. 수정/삽입이 않되는 것입니다.
삭제는 해보지 않았지만 똑 같으리라고 생각합니다.
델파이 4.0 C/S 이고요, MS SQL 7.0사용합니다. C/S 환경이고요.
쿼리를 사용했고요, 조인은 없습니다. Order By등의 문장도 없고요.
단순히 한 테이블의 내용을 그대로 가져오는 것입니다.
Query에서 CachedUpdate는 True로 줬고요, UpdateObject도 연결을 했습니다.
물론 UpDateSQL에서 문장(?)을 다 생성을 해줬습니다.
아무런 문제가 없다고 생각을 하는데도 수정/삽입이 되지를 않습니다.
UpDateSQL에 대해 검색을 해봤는데 제대로 답을 구할수가 없었습니다.
자세한 설명을 좀 부탁합니다.
아니면, C/S에서 UpDateSQL이 제대로 동작하는 예제를 좀 보내주셨으면 무척 고맙겠습니다.
도움 기다립니다.
위대한 단군혼이 살아있는 나라.... 대한민국.
> 안녕하세요. 까마귀입니다.
>
> 거두절미하고 말씀드리겠습니다.
> 제가 밑에서 언급했던 Grid문제 때문에 UpDateSQL을 꼭 써야 겠습니다. UpDateSQL을 쓰니 그런 문제가 발생하지 않더군요.
> 그런데, 이 UpDateSQL을 사용하니 또 다른 문제가 생겼습니다. 수정/삽입이 않되는 것입니다.
> 삭제는 해보지 않았지만 똑 같으리라고 생각합니다.
> 델파이 4.0 C/S 이고요, MS SQL 7.0사용합니다. C/S 환경이고요.
> 쿼리를 사용했고요, 조인은 없습니다. Order By등의 문장도 없고요.
> 단순히 한 테이블의 내용을 그대로 가져오는 것입니다.
> Query에서 CachedUpdate는 True로 줬고요, UpdateObject도 연결을 했습니다.
> 물론 UpDateSQL에서 문장(?)을 다 생성을 해줬습니다.
> 아무런 문제가 없다고 생각을 하는데도 수정/삽입이 되지를 않습니다.
> UpDateSQL에 대해 검색을 해봤는데 제대로 답을 구할수가 없었습니다.
> 자세한 설명을 좀 부탁합니다.
> 아니면, C/S에서 UpDateSQL이 제대로 동작하는 예제를 좀 보내주셨으면 무척 고맙겠습니다.
> 도움 기다립니다.
>
>
>
> 위대한 단군혼이 살아있는 나라.... 대한민국.
수정 삭제의 경우도
TTable 컴포넌트 쓰는 방식으로 쓰시면 됩니다..
Query1.Insert; //Insert 할때
Query1.post; //insert 한후
//그리드에서 수정할땐 그리드에 레코드를 클릭하면
//Query가 Edit모드로 바뀝니다..그래서 수정한수
Query1.Post;
그리고 post 했을때 바로 DB에 적용되지는 않죠..
ApplyUpdate를 해주어야 DB에 적용됩니다..
다음은 예제 입니다.
보통은 ApplyUpdate를 해줄때 Query1컴포넌트의 Event에 AfterPost 이벤트에
사용자 함수 를 만들어 호출하죠..
제가 사용자 함수를 간단히 만들었습니다..
procedure TDM.Query1AfterPost(DataSet: TDataSet);
begin
UpdateChange(DataSet As TBDEDataSet);
end;
procedure UpdateChange(DataSet :TBDEDataSet);
begin
with Database1 do
begin
StartTransaction;
with DataSet do
begin
try
ApplyUpdates;//query
Commit; //database
except
//MessageDlg('업데이트 에러', mtError, [mbOK], 0);
Rollback;
raise;
end;
CommitUpdates;
end;
end;
end;