안녕하세요. 파이어버드 시작2일째인데 벽에 또 부딪쳤습니다.
하루만에 다시 또 에러가 발생해서 가르침을 받고자 질문를 올립니다.
요점은 엑셀파일을 불러와서 그것을 DB에 입력하고자 하는건데요.
스트링그리드에 뿌린 내용을 For문을 돌려서 입력할 때
한바퀴 돌고 2번째로 인서트 값을 넣을때 에러가 납니다.
'Dynamic SQL Error SQL error code = -104
Token unknown -line 5, char2
Insert'
아래는 소스부분입니다.
cnt := 0;
for i := 1 to StringGrid1.RowCount -1 do
begin
IBQuery.SQL.Add(' INSERT INTO T_CODE ');
IBQuery.SQL.Add(' (CODE, CNO, KN, EN) ');
IBQuery.SQL.Add(' VALUES ');
IBQuery.SQL.Add(' (:P_CODE, :P_CNO, :P_KN, :P_EN) ');
IBQuery.Prepare; //한바퀴돌고 2번째 로우넣을때 에러
IBQuery.ParamByName('P_CODE').AsString := StringGrid1.Cells[0,i];
IBQuery.ParamByName('P_CNO').AsString := StringGrid1.Cells[1,i];
IBQuery.ParamByName('P_KN').AsString := StringGrid1.Cells[2,i];
IBQuery.ParamByName('P_EN').AsString := StringGrid1.Cells[3,i];
try
IBQuery.ExecSQL;
//itTrans.Commit;
cnt := cnt + 1;
except on E: Exception do
begin
//IBQuery.Transaction.Rollback;
itTrans.Rollback;
MessageDlg('코드입력중 에러발생!' + E.Message, mtInformation, [mbOK], 0);
IBQuery.Close;
IBQuery.SQL.Clear;
Exit;
end;//begin
end;//try
end;//for i := 1 to StringGrid1.RowCount -1 do
itTrans.Commit;
iqSql.Close;
iqsql.SQL.Clear;
저의 석두로는 해결이 잘 안됩니다. ㅠ.ㅠ
|