업데이트를 하려고 하는데 트랜잭션이 8개정도 됩니다. 한번에 8개를 한뒤 커밋처리를 하려고 합니다. 어떻게 해야 될까요?
database1.commit 를 맨마지막에 넣으라는데.. DLL 화일이라 데이타베이스를 메인에서 가지고 있거든요 그래서 쿼리만 넣었읍니다.
그랬더니 위의 커밋이 인식을 못해요.. 그리고
with Qry_m do
begin
try
sql.clear;
sql.add('update 테이블명');
sql.add('set 주절주절');
sql.add('주절주절');
sql.add('update 테이블명');
sql.add('set 주절주절');
sql.add('where 주절주절');
ParamByName('input_id_integer').ASstring := S_max_id;
ParamByName('input_id_string').asstring := S_max_id;
execsql;
except on E:EDBEngineError do
begin
MYDBError := E.Errors[1];
UDP_UsererrorMsg(MYDBError.Message,'CCSFE8888');
// Database1.Rollback;
Screen.Cursor := crDefault;
Close;
exit;
end;
end;
Database1.Commit;
end;
위의 문에서 execsql 이 한번 들어가는 것맞나요? 그리고 커밋은 엊제 들어가지요???
도대체 나도 이해가 안가는 것을 질문하려니.. 질문이 어수선했읍니다. 감사합니다.
답변을 메일로 주시면 감사하겠읍니다. 답변을 주시는 분에게 감사의 마음이 답긴 카드메일을 보내드리겠읍니다.
> try
> sql.clear;
> sql.add('update 테이블명');
> sql.add('set 주절주절');
> sql.add('주절주절');
>
> sql.add('update 테이블명');
> sql.add('set 주절주절');
> sql.add('where 주절주절');
>
> ParamByName('input_id_integer').ASstring := S_max_id;
> ParamByName('input_id_string').asstring := S_max_id;
>
> execsql;
다른건 몰라두...위에서 execsql는 하나가 아닌 2개가 들어가야 하겠네여..제가 아는바로는...UPDATE문이건 INSERT문이건...하나의 구문마다 SQL구문을..실행 해 줘야하는 걸루 알고 있네여..전 지금 에러 핸들링하구 예외처리구문때문에..버부적 거리구 있는뎅..