各位高手,我的sql语句是这样的
SELECT *  FROM DEMO..COPTJ  where TJ001>=:P1  UNION all SELECT * FROM SLJX..COPTJ  WHERE TJ001>:P1adoquery里有一个参数P1,赋值以后,为什么adoquery1.open时说参数不对,或信息不完整 ,但是单独用union两连的任何一个语句都 没有问题
请高手指点迷津

解决方案 »

  1.   

    你不要用adoquery的params啊. 直接写好sql语句. 再adoquery.sql.text := 你写好的sql语句不就好了吗?
      

  2.   

    DECLARE @P1 VARCHAR(10)SELECT *  FROM DEMO..COPTJ  where TJ001>=@P1  UNION all SELECT * FROM SLJX..COPTJ  WHERE TJ001>@P1
      

  3.   

    这是ADOQuery的问题,多次出现必须写成多个变量!
    SELECT *  FROM DEMO..COPTJ  where TJ001>=:P1  UNION all SELECT * FROM SLJX..COPTJ  WHERE TJ001>:P2
      

  4.   

    要在SQL中反复使用同一参数,只能先定义一个变量,然后将参数值赋给变量,在语句中使用定义的变量。语句改为这样:
    Declare @p1 as varchar(20)
    Set @p1=:p1
    SELECT *  FROM DEMO..COPTJ  where TJ001>=@p1  UNION all SELECT * FROM SLJX..COPTJ  WHERE TJ001>@p1
      

  5.   

    问题是在delphi的adoquery中的sql语句里可以带变量吗
      

  6.   

    我觉得使用format比使用参数好用。