我用ADO作的查询报错。出错信息:
[Microsoft][ODBC Microsoft Access 驱动程序]参数不足,期待是1.情况是:查询数字时可以;查询字符类(文本)报以上信息,无法完成查询。我是生手,望各位大哥不吝指教。前两天我在两个论坛上发了这个问题,有多人回复却无一人帮我解决了问题。最后很无奈的结了贴。再有我发现:1.ADOQuery没有prepare;
           2.ADOQuery没有parambyname;
是这样吗?

解决方案 »

  1.   

    肯定是你的SQL写的有问题。贴出来看看。
      

  2.   

    ADOQuery.prepared:=True;就相当于调用了prepare
    parambyname;要这样用
    ADOQuery.Parameters.ParamByName()
      

  3.   

    看看阁下的代码再说.我想你的select 语句中有from youtablename 吗?要不不会报错
      

  4.   

    我的代码是这样写的:
    with ADOQuery1 do
    begin
      close;
      sql.clear;
      sql.add('select * from 课程日志 where 课程="语文"');
             //('select * from 课程日志 where 人数=15')就可以通过。
      open;
    end;
      

  5.   

    加入ADOStoredProc组件执行存储过程
    str:='语文';
    with adoquery1 do
    begin
     close;
     Sql.clear;
     sql.add(format('select * from 课程日志 where 课程=''%s''',[str]));
     sql.open;
    end;
    看看行不行
      

  6.   

    To haacat(哈):
    不行啊。
    真的搞不懂。
      

  7.   

    with ADOQuery1 do
    begin
      close;
      sql.clear;
      sql.add('select * from 课程日志 where 课程=:课程');
      Parameters.ParamByName('课程').asstring;
      open;
    end;
    如果还出错,我想应该是连database出错
      

  8.   

    QuotedStr()是个什么函数?
    它好象管用!
      

  9.   

    adoquery.close;
    adoquery.sql.text:='select * from 课程日志 where 课程='''+'语文'+'''';
    adoquery.open;
      

  10.   

    怎么检测fieldbyname('语文')的类型
    比如说怎样确定它是不是字符串类型?
      

  11.   

    To truexf(小方) :
    大哥求求你告诉我怎么写?if fieldbyname('语文')....=...... then showmessage('是字符串类型')
    帮我补充一下,好吗?