Updatesql을 사용할려고 합니다.
우선
Query를 이용하여 Datasource로 보낸후 DBGRID상으로 자료를
뿌렸습니다.
그리고 DBGRID상에서 자료를 수정후
UPdatesql을 통해 업테이트를 수행할려고 하니
'UPdate Fail'이란 메세지만 계속 나옵니다.
Query의 프로퍼티는
name := Q_code
cachedUpdate := True
Requestlive := False
Updateobject := us_code
UPdateSQL의 프로퍼티는
update edidta.h0602m
set
HMDESC = :HMDESC,
HMGUYK = :HMGUYK,
HMUNIT = :HMUNIT,
HMGSEQ = :HMGSEQ,
HMGNAM = :HMGNAM,
HMFLAG = :HMFLAG,
HMLDAT = :HMLDAT
where
HMCODE = :OLD_HMCODE
그리고 버튼을 누르면 실행이 이렇게 됩니다.
Q_code.CommitUpdates;
왜 자꾸 ERROR가 나는지요....
아님 제가 잘못 알고 있거나...허허...
Cached update기능을 사용을 하실려고 하는것 같은데...
이렇게 해보심이... 어떨지...???
database1.starttransaction;
try
query.applyupdates;
database1.commit;
except
database1.rollback;
raise;
end;
query.commitupdates;
물론 이렇게 하기 위해서 기본적으로 Tquery의 cahced update기능이 true로
되어 있어야 하며 TupdateSql(?)요놈과 Tquery가 연결이 되어 있어야 합니다.
델파이의 cached update기능은 아주 매력적이지요...
파워빌더의 데이타 윈도우라는 개념과도 매우 흡사한편이고요.....
참고로 query.commitupdates는 applyupdates에 의하여 commit된 메모리상의
caching된 data를 clear한다는 의미가 있습니다.
자세한것은 델파이 메뉴얼을 참조하세요....
--------------------------------------------------------
요즘... 한국 델파이 개발자 홈페이지의 Q&A란에 친절하게 답변해 주시는 분이
너무 적은것 같네요...
물론 저도 아직 모르는것 투성이지만... 정보는 서로 공유하고 같이 더불어
연구해나갈때에 더욱 값진것 아닙니까...??
아울러,, 열심히 답변할동 하고 계시는 안치봉님과 김영대님의 노고에 감사
드립니다........
마성수 wrote:
> Updatesql을 사용할려고 합니다.
> 우선
> Query를 이용하여 Datasource로 보낸후 DBGRID상으로 자료를
> 뿌렸습니다.
> 그리고 DBGRID상에서 자료를 수정후
> UPdatesql을 통해 업테이트를 수행할려고 하니
> 'UPdate Fail'이란 메세지만 계속 나옵니다.
>
> Query의 프로퍼티는
> name := Q_code
> cachedUpdate := True
> Requestlive := False
> Updateobject := us_code
>
> UPdateSQL의 프로퍼티는
> update edidta.h0602m
> set
> HMDESC = :HMDESC,
> HMGUYK = :HMGUYK,
> HMUNIT = :HMUNIT,
> HMGSEQ = :HMGSEQ,
> HMGNAM = :HMGNAM,
> HMFLAG = :HMFLAG,
> HMLDAT = :HMLDAT
> where
> HMCODE = :OLD_HMCODE
>
> 그리고 버튼을 누르면 실행이 이렇게 됩니다.
> Q_code.CommitUpdates;
>
>
> 왜 자꾸 ERROR가 나는지요....
>