꼴찌DB 님이 쓰신 글 :
: 파이어버드를 DBExpress로 연결해서 사용하고 있습니다.
: 아래처럼 여러개의 Insert문을 한꺼번에 전달해서 실행 시키려 하면 에러가 나던데
: 방법이 없는건지요?
: (전에 MySQL에서는 가능했었는데 파이어버드에선 원래 여러문장 일괄실행이 지원 안되나요?)
:
: var
: Cds: TClientDataset;
:
: begin
: //...
: //...
:
: Cds.CommandText :=
: 'insert into testTbl (name, age) VALUES ('홍길동', 23);' + #13 +
: 'insert into testTbl (name, age) VALUES ('김철수', 43);' + #13 +
: 'insert into testTbl (name, age) VALUES ('박민수', 13);';
:
: Cds.Execute;
일단 위에 CommandText 부터 잘 못 되었습니다. 실행이 되던가요?
그리고 뒤에 #13은 왜 붙이셨는지...저건 출력할때나 줄바꿈이지 query 날리는데는 쓸데 없는 것입니다.
그리고 테스트 해봤는데 한꺼번에 입력이 안됩니다.
Cds.CommandText :=
'insert into testTbl VALUES (111,23), (222, 43)';
이렇게 한꺼번에 입력도 안되더군요. 참고로 제컴에 FB 버전은 1.5 입니다..
차리리 따로 txt 파일을 만들어서 아래와 같이 처리 하심이...
while not Eof(F) do begin
try
insert into ....
excute;
except
rollback;
end;
end;
commit;
|