With Query1, Query1.SQL Do begin
:
DataModule1.DataBase1.StartTransaction;
Try
Close; Clear;
Add('INSERT INTO TEST (col1, col2, col3) VALUES (:a1, :a2, :a3)');
ParamByName('a1').AsString := Edit1.Text;
ParamByName('a2').AsString := Edit2.Text;
ParamByName('a3').AsString := IntToStr(Temp);
ExecSQL;
DataModule1.DataBase1.Commit;
Exit;
Except
ShowMessage('입력 실패 !');
DataModule1.DataBase1.RollBack;
Exit;
end;
:
계속해서 '입력 실패!'창만 뜨길래... ShowMessage()를 군데 군데 박아
추적을 해보니 ExecSQL에서 걸리더군요.
'General SQL [Microsoft][ODBC Microsoft Access Driver] INSERT INTO
문의 구문 오류입니다.' 라고 뜨더군요.
제가 생각할 적엔 Insert Query 잘못 작성한 것 같진 않은데...
참고로 운영체제는 XP, DB는 Access DB를 사용하고 있습니다.
검색으로 글을 읽다보니 Local로 DB를 사용할 경우 DataBase 컴포넌트의
TransIsolation 속성을 tiDirtyRead 로 설정하라 해서 해봤지만... T_T
제가 뭘 잘못했는지요...
데이터베이스에 쿼리를 수행하면서 무언인가가 틀렸다는 뜻입니다.
델파이쪽에서의 문제가 아니라는 것이죠.
코딩하면서 흔히 실수하는 경우로
디비에 만든 필드 타입과 다른 데이터를 삽입하려 하는경우
INSERT 쿼리가 오류가 발생합니다.
아니면 필드가 없다던지..
테이블 디자인을 확인해보시는게 좋을듯 하네요.