버튼클릭했을때 테이블에 아래와 같이 인서트를 하려고 합니다...
쿼리만 실행시키면 인서트가 되는데 프로그램으로 인서트하면 아래의 에러메세지가 뜹니다...
DB문제인지 코딩문제 인지 모르겠습니다...
도움 부탁드립니다...
개발환경:WIndowsXP, Delphi6, MS Access
----------------------------------------------------------------------
error
Project pTest.exe raised exception class EOleException with message '현재 공급자가 하나의 실행으로 여러개의 레코드 집합을 반환하는것을 지원하지 않습니다'. Process stopped. Use Step or Run to continue.
----------------------------------------------------------------------
전체소스입니다...
procedure TForm1.btnInsertClick(Sender: TObject);
var
customID: string;
begin
customID := 'HEllO';
InsertData(customID);
end;
procedure TForm1.InsertData(customID: string);
var
sSql : string;
SERIAL1, CUSTOMPART, REVISION, SERIAL_SPEC, SERIAL_EXCEPT, RESET, PARAMETER,
SERIAL2, DEFAULT_VALUE, WORK_WEEK, WORK_CODE, RESET_SERIAL, BOX_SERIAL,
OPT, HIGHFREE, PBFREE: string;
begin
try
SERIAL1 := '1';
CUSTOMPART := '1';
REVISION := '1';
SERIAL_SPEC := '1';
SERIAL_EXCEPT := '1';
RESET := '1';
PARAMETER := '1';
SERIAL2 := '1';
DEFAULT_VALUE := '1';
WORK_WEEK := '1';
WORK_CODE := '1';
RESET_SERIAL := '1';
BOX_SERIAL := '1';
OPT := '1';
HIGHFREE := '1';
PBFREE := '1';
sSql:= ' INSERT INTO DETAIL( '
+' CUSTOMID, '
+' SERIAL1, '
+' CUSTOMPART, '
+' REVISION, '
+' SERIAL_SPEC, '
+' SERIAL_EXCEPT, '
+' RESET, '
+' PARAMETER, '
+' SERIAL2, '
+' DEFAULT_VALUE, '
+' WORK_WEEK, '
+' WORK_CODE, '
+' RESET_SERIAL, '
+' BOX_SERIAL, '
+' OPT, '
+' HIGHFREE, '
+' PBFREE ) '
+' VALUES( '
+'''' +customID+''','
+'''' +SERIAL1+''','
+'''' +CUSTOMPART+''','
+'''' +REVISION+''','
+'''' +SERIAL_SPEC+''','
+'''' +SERIAL_EXCEPT+''','
+'''' +RESET+''','
+'''' +PARAMETER+''','
+'''' +SERIAL2+''','
+'''' +DEFAULT_VALUE+''','
+'''' +WORK_WEEK+''','
+'''' +WORK_CODE+''','
+'''' +RESET_SERIAL+''','
+'''' +BOX_SERIAL+''','
+'''' +OPT+''','
+'''' +HIGHFREE+''','
+'''' +PBFREE+''')';
ADODataReceiveQuery1.ConnectionString := 'Provider=MSDASQL.1;Persist Security Info=False;Data Source=CodeData';
DSReceive1.DataSet := ADODataReceiveQuery1;
ADODataReceiveQuery1.Close;
ADODataReceiveQuery1.SQL.Clear;
ADODataReceiveQuery1.SQL.Add(sSql);
ADODataReceiveQuery1.Open;
except
ShowMessage('error');
end;
end;
Open 말고 ExecSQL 메소드를 사용해 보세요..