Q&A

  • ADOQuery 의 Variant 처리 문제??
안녕하세요 BaSTaD 입니닷...

ADOQuery로 OBDC 설정해서 MySQL로 디비작업하고 있습니다..

Query.SQL.Text := 'insert into test(id,name,start) values(:pmId,:pmName,:pmStart)';

with SQL.Paramters do
begin
  ParamByName('pmId').Value := 8;
  ParamByName('pmName').Value := 'tester';
  ParamByName('pmStart').Value := Now;
end;

Query.ExecSQL;

이렇게 수행하면

'[Microsoft][ODBC SQL Server Driver] 선택 기능을 구현하지 않았습니다.`

라는 메시지 나오네요.. MSSQL에서는 제대로 동작하는데요..
Variants 타입이 문제인것 같은데요..

만약 ParamByName 않쓰구 직접 SQL 문안에 값을 넣으면 제대로 동작하더라구요.. ADO 컴포넌트의 버그가 있다고 해서 업데이트했거든요..

제 개발환경은 D7 Ent(update 1/Build 8.1) 이구요.. MDAC 2.8 패치1 입니다..

혹시 왜그런지 아시는분은 조언 부탁드리겠습니다...

By KDDG 만수 ㅔ  이
3  COMMENTS
  • Profile
    바다사랑 2004.06.26 00:01


    이렇게 해보시지요,,,,

    with Query Do Begin
        Sql.Clear;
        Sql.Add('insert into   test   (id,name,start) ');
        Sql.Add(' values(:pmId,:pmName,:pmStart)');
        ParamByName('pmId').AsInteger := 8;
        ParamByName('pmName').AsString := 'tester'
        ParamByName('pmStart').AsDatetime := Now;
       ExecSQL;
    End;

  • Profile
    KDDG_BaSTaD 2004.06.26 06:27

    ==>  답변감사드립니다. 그런데...

    TADOQuery 입니다. TQuery 가 아니라요
    TADOQuery에는 TQuery.ParamByName().AsXXXX 가 없습니다.
    아닌가요? -__-; ADO에서 걍 TQuery를 사용할 수 있나요? 디비쪽은 문외한이라서요...
  • Profile
    금종철 2004.06.28 09:45

    with ADOQuery Do Begin
        Sql.Clear;
        Sql.Add('insert into   test   (id,name,start) ');
        Sql.Add(' values(:pmId,:pmName,:pmStart)');
        Parameters.Items[0].Value:=  8;
        Parameters.Items[1].Value:=  'tester'
        Parameters.Items[2].Value:=  Now;
       ExecSQL;
    End;

    이렇게 해 보세요..