<server DataModule 의 환경>
session1 -> database -> table1-> DataSetProvider
DataSetProvider의 옵션에서 poallowCommandText = True
<client DataModule>
socketConnection -> clientDataSet
clientDataSet.close;
clientDataSet.Params.Clear;
SQLSTR := '';
SQLSTR := 'INSERT INTO Empm ( Empm ) ';
SQLSTR := SQLSTR + 'Values( Empm ) ';
clientDataSet.Params.CreateParam(ftstring,'EMPM',ptInput);
clientDataSet.CommandText := SQLSTR;
With clientDataSetDo
begin
Params.Parambyname('Empm').asstring := '홍길동';
end;
Try
clientDataSet.Execute;
Except
MessageDlg('저장 중 DB Error ! 관리자에게 문의하십시오 !',mtwarning,[mbok],0);
Exit;
raise;
end;
Project se.exe raised exception class EOleException with message "Table does not exit.
'INSERT' 키워드 근처의 구문의 잘못 되었습니다'. Process stopped. use step or run to continue
라는 메세지가 나옵니다.
무엇이 문제 인지 모르겠습니다. 고수님들 좀 도와주세요
const
File_SALE = 'aaa_tbl';
var
_SQL : String;
begin
_SQL := Format( 'SELECT SaleDay, TableNo, AM_SALE ' +#13+
' FROM %s ' +#13+
' WHERE ENTERCODE = ''' + _ENTER_CODE + ''' ' +#13+
' AND BillStat = ''' + '2' + ''' ' +#13+
' ORDER BY SaleDay, TableNo ', [File_SALE]);
with DM.ClientDataSet1 do
begin
Active := False;
CommandText := _SQL;
Active := True;
_RC := RecordCount;
end;
<!--CodeE-->
안녕하세요.
일단 에러메시지로 봐서는 테이블명이 잘못되었네요...(테이블이 없다구 머라 그러는군요..쩝)
한번 확인해보시고
위에 쿼리는 기존 회사에서 제 상사분이 개발시에 저런식으로 했는데
ClientDataset 쓰면서 수정한 것입니다.
머 별 차이는 없고, 사람마다 쓰는게 틀리지만 할때마다 테이블을 적거나, 테이블명이 잘못되서 에러나는것을
조금은 미연에 방지할 수 있을듯 보입니다.
참고로 데이타셋프로바이더를 쓰셧다면 브로커 그녀석도 같이 연결해주세요.. (델7이상시 존재...)