请问各位同行,我在编程是出现的问题:
   Project Project1.exe raisede exception class EDatabaseError with message 'ADOQuery1:
Parameter 'aa' not found'.
  这是运行程序出现的提示,程序代码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='insert into 工资类型(工资类型) values(:aa)';
  showmessage(  ADOQuery1.SQL.Text);
ADOQuery1.Parameters.ParamByName('aa').Value  :=trim(Edit1.Text);
ADOQuery1.ExecSQL;
end;我查找了这方面的资料,告诉把ADOQuery1的ParamCheck的设为False,问题没有解决。
希望哪位高手给予指点一下,谢谢。

解决方案 »

  1.   

    insert into 你得指定把aa写到哪个字段啊,insert into tableA(fieldA) values(:aa)
      

  2.   

    给那个ADOQuery增加一个名为aa的参数
      

  3.   

    aa本生就是ADOQuery的参数呀,还怎么增加
      

  4.   

    回yqdragon:数据库里有’工资类型的表‘,表中有“工资类型”字段
      

  5.   

    ADOQuery1.SQL.Text:='insert into 工资类型(工资类型) values('''+trim(Edit1.Text)
    +''')';
      

  6.   

    用’select * from 工资类型‘显示结果了
      

  7.   

    谢谢shui_renzhi,这样是解决,可是很多程序为什么往往用这样的语句转换呢?有什么优点吗?
    ADOQuery1.SQL.Text:='insert into 工资类型(工资类型) values(:aa)';
    ADOQuery1.Parameters.ParamByName('aa').Value :=trim(Edit1.Text);
      

  8.   

    如果工资类型字段的类型为varchar
    那就应该是对的
    如果不对就是其它原因了
      

  9.   

    我在插入数据表的值时,有的字段不允许位nil,这种情况怎么处理
      

  10.   

    设计期将SQL中的:var 自动转换成parameters的功能需要满足以下条件:
    1.ParamCheck = true
    2.connection属性不为空并且对应的adoconnection已经连接上
      

  11.   

    谢谢truexf呀。
       但如果把ParamCheck = true,又会出现别的错误提示呀?
      

  12.   

    你说的connection属性是 connectionString吗?truexf