语句:  
adoquery1.sql.add('select  *  from  table1  where  fieldname1=:var1  or fieldname2 in (select fieldname2 from table2 where fieldname3=:var1)');  
 
上面的ADO查询语句,提示参数提供不一致错误!去掉任何一个:var1变量都执行成功。高手帮忙看看怎么写才对!  

解决方案 »

  1.   

    两个参数怎么都用同一个名字??

    var1和var2吧
      

  2.   

    语句:  
    adoquery1.sql.add('select  *  from  table1  where  fieldname1=:var1  or fieldname2 in (select fieldname2 from table2 where fieldname3=:var1)');  提示错误:不正常的参数定义,提供了不一致或不完整的信息。 
    ————————————————————————————————————————语句改成:  
    adoquery1.sql.add('select  *  from  table1  where  fieldname1=:var1  or fieldname2 in (select fieldname2 from table2 where fieldname3=:var2)');  
    这样正确。
    ————————————————————————————————————————语句改成:  
    adoquery1.sql.add('select  *  from  table1  where  fieldname1=:var1  or fieldname2 =:var1
    也是正确的————————————————————————————————————————
    语句改成:  
    adoquery1.sql.add('select * from table1 where fieldname2 in (select fieldname2 from table2 where fieldname3=:var1 or fieldname4=:var1)');  
    是不正确的————————————————————————————————————————
    根据上面多次测试,得出如下结论:
    sql语句中没有圆括弧时,相同变量可以出现多次。
    sql语句中存在圆括弧时,相同变量不能出现多次。
      

  3.   

    如果说:参数不允许同名语句
    adoquery1.sql.add('select * from table1 where fieldname1=:var1 or fieldname2 =:var1'); 
    使用相同参数,也是可以正常执行的。只要sql语句中没有括号,多个相同参数也可以,我测试了。这就有点奇怪,可能是特例吧!