我用ADOQUERY连接SQL 2000,with adoquery1 do
begin
close;
sql.clear;
sql.add('select * from table_1 where fld_1:=a and fld_2:=b');
parameters.parambyname('a').value=edit1.text;
parameters.parambyname('b').value=edit2.text;
open;
if recordcount=0 then
 showmessage('')
else
 ;
end为什么传递过去我a、b的值为空,edit1和edit2的内容都不为空呀。郁闷中~~~~~

解决方案 »

  1.   

    sql.add('select * from table_1 where fld_1=:a and fld_2=:b');
    parameters.parambyname('a').value=edit1.text;
    parameters.parambyname('b').value=edit2.text;
      

  2.   

    呵呵,楼主赋值语句打习惯了
    sql中传参不同赋值语句
      

  3.   

    对不起,我发贴的时候没注意,我是这样写的,传递的也为空值,不明白为什么。sql.add('select  *  from  table_1  where  fld_1=:a  and  fld_2=:b');
      

  4.   

    sql.add('select * from table_1 where fld_1=:a and fld_2=:b');
    parameters.parambyname('a').value :=edit1.text;
    parameters.parambyname('b').value :=edit2.text;
      

  5.   

    你先把语句直接放到adoquery里面,通过属性可以看到参数的类型以及大小,然后就知道怎么用语句表达了
      

  6.   

    冒号应该是在参数前面,而不是字段后面哦。
    字段类型你应该注意下。如果是datetime 类型的,ADO方式和BDE参数传递方式是不同的。
      

  7.   

    sql.add('select * from table_1 where fld_1:=a and fld_2:=b');
    parameters.parambyname('a').value=edit1.text;  把等号改成 :=
    parameters.parambyname('b').value=edit2.text;
      

  8.   

    那就干脆不要这样写了,改 
    sql.add('select * from table_1 where fld_1='''+edit1.text+''' and fld_2='''+edit2.text+'''');、
    open;
        不要理了~!嘿嘿,保证传过去~!