with adoQuery2 do
          begin
          Close;
          SQL.Clear;
          SQL.Add('insert into table_fiber(id,name) ');
          sql.add('values(:a1,:a2)');
          parameters.parambyname('al').value:=''edit1.text'';
          parameters.parambyname('a2').value:=''+edit2.text+'';
          ExecSQL;
          end;
为什么运行时说'al'找不到呢?有分
是否adoQuery1不能这样用
parameters.parambyname('al').value:=''+edit1.text+'';
还是不行,和我用delphi5有关吗
后来换成parameters.parambyname('al').value:=edit1.text也不行

解决方案 »

  1.   

    很有可能你的ADOQERY2没有连接数据库
      

  2.   

    可能你的ADOQuery2没有到连接数据库
      

  3.   

    1)adoQuery2.connection正确吗?
    2)adoQuery2的Parameters属性设置好了?
    3)Parameters中a1,a2类型匹配吗
    4)例a1是 ftInteger 类型,对应ID字段也是Integer型
      parameters.parambyname('al').value:=strToInt(edit1.text)
      

  4.   

    with adoQuery2 do
              begin
              Close;
              SQL.Clear;
              SQL.Add('insert into table_fiber(id,name) ');
              sql.add('values('+edit1.text+','''+edit2.text+''')');
              ExecSQL;
              end;
      

  5.   

    还是没有解决
    看了一下
    1)adoQuery2.connection是正确的
    2)但是adoQuery2的Parameters属性设置什么?
    3)Parameters中a1,a2类型匹配
      

  6.   

    你必須到AdoQuery1的Parameters屬性中加入兩個參數
      

  7.   

    你必須到AdoQuery1的Parameters屬性中加入兩個參數 (a1,a2)
      

  8.   

    Parameters屬性不加也可以啊。可能是connection设置不对。
    parameters.parambyname('al').value:=''edit1.text'';
    后面该是单引号啊
    parameters.parambyname('al').value:=’edit1.text‘;