안녕하세요. 어제 SQL 문에 대해 질문을 한 최기훈입니다.
계속 문제가 생겨 다시한번 질문을 드립니다.
기존에 제가 Delphi ADO Componet로 프로그램을 할때는 문제가 발생되지 않았는데...
직접 프로그램상에서 CreateOleObject을 이용하여 ADO를 생성하여 프로그램을 할때는 계속 문제가 발생됩니다.
기존의 프로그램
여기서 dbTable은 TADOTable입니다.
with dbTable do begin
Append();
FieldByName('strData').AsString := dataStr;
Post();
end;
하지만 이것을 다음과 같이 바꾸었습니다.
ADORecordSet := CreateOleObject('ADODB.RecordSet');
commandStr := 'INSERT INTO dbTable (strData) VALUES
(''' + dataStr + ''')';
ADORecordSet := ADOConnection.Execute(commandStr);
이때 문제가 되는 것이 dataStr에 들어가는 내용에 따라...
동작될 때가 있고 동작되지 않을 때가 있다는 것입니다.
TADOTable에서 FieldByName을 이용하였을 경우는 이런 문제는 발생되지 않았는데...
발생되는 에러는...
'...EOleException with message '...' 쿼리식의 연산자가 없는 구문 오류입니다'.
라는 error가 발생됩니다.
제가 코딩한 두번째 프로그램이 첫번째 프로그램하고 전혀 다를 것이 없다고 생각되는데... 왜 이문제가 발생되는지 앞이 깜깜합니다.
고수님의 한수를 부탁드리겠습니다.