KSAPRK 님이 쓰신 글 :
: 안녕하십니까..
:
: Zeos및 파이어 버드로 DB Program 을 짜고 있는데 Insert 명령을 2줄을 넣으면
: Error가 발생 합니다
:
: Insert 명령을 1줄을 사용하면 괜찮음
: 여러줄 입력을 할수 없는것인가요?
:
: 그리고 ZeosComponet인 ZConnection의 속성중 TransactIsolationLevel 의 값들이 어떻게 동작하는지
: 알려 주시면 감사하겠습니다.
: (tiNone, tiReadCommitted, tiReadUncommitted, tiRepeatableRead, tiSerializable)
: -> 보통 Db Program을 짜면 어떤 속성을 주고 사용하는게 좋은지요?
:
: //////////////////////////////////
: Error 남
: /////////////////////////////////
:
: ZConnection1.StartTransaction;
: ZQuery1.Close;
: ZQuery1.SQL.Clear;
: ZQuery1.SQL.Add('INSERT INTO History_Eeprom (BAR_CODE, COPY_DATE) VALUES(:No, CURRENT_TIMESTAMP) ');
: ZQuery1.SQL.Add('INSERT INTO History_Eeprom (BAR_CODE, COPY_DATE) VALUES(:No2, CURRENT_TIMESTAMP) ');
:
: ZQuery1.ParamByName('No').AsString := edNo.Text;
: ZQuery1.ParamByName('No2').AsString := edNo2.Text;
: try
: ZQuery1.ExecSQL;
: ZConnection1.Commit;
: except
: ZConnection1.Rollback;
: end;
:
:
: //////////////////////////////////
: 2번 입력하면 괜찮음
: ////////////////////////////////
:
: ZConnection1.StartTransaction;
: ZQuery1.Close;
: ZQuery1.SQL.Clear;
: ZQuery1.SQL.Add('INSERT INTO History_Eeprom (BAR_CODE, COPY_DATE) VALUES(:No, CURRENT_TIMESTAMP) ');
:
: ZQuery1.ParamByName('No').AsString := edNo.Text;
: try
: ZQuery1.ExecSQL;
: ZConnection1.Commit;
: except
: ZConnection1.Rollback;
: end;
:
: ZConnection1.StartTransaction;
: ZQuery1.Close;
: ZQuery1.SQL.Clear;
: ZQuery1.SQL.Add('INSERT INTO History_Eeprom (BAR_CODE, COPY_DATE) VALUES(:No2, CURRENT_TIMESTAMP) ');
:
: ZQuery1.ParamByName('No2').AsString := edNo2.Text;
: try
: ZQuery1.ExecSQL;
: ZConnection1.Commit;
: except
: ZConnection1.Rollback;
: end;
안녕하세요. 까막입니다.
IBExpert 에서 실험을 해보세요.
SQL Editor 창에서 Insert 구문을 두개를 작성하셔서 실행하시면 오류 납니다.
Script Executive 에서 마찬가지로 하시면 될겁니다.
Oracle 이나 Firebird 에서는 한번에 하나씩만.
SQL Server 에서는 여러개를 한번에 실행 가능합니다.
Script 를 사용하시던가...
for 루프를 돌면서 순차적으로 실행하시면 됩니다.
그리고, 위에서 Insert 문구 자체는 똑같고 인수값만 다르잖아요.
그러니 Insert 문구는 한번만 만드시고, 인수값만 다시 넣으시면 됩니다. -> for 루프를 사용하실때.
위대한 단군혼이 살아있는 나라.... 대한민국.
|