本帖最后由 cococenstar 于 2012-03-01 22:13:48 编辑

解决方案 »

  1.   

    我记得应该是用单引号的。当我改为SJQ_ID<>'Q01'时
    Query_ZQB_DLK.SQL.Add('Select * from dbo.ZQB_DLK where SJQ_ID<>''Q01'' Order By BDZ_ID' )
    这样就OK了
    ''和“是不同的
    要用英文输入发下的两个单引号
      

  2.   

    Query_ZQB_DLK.SQL.Add('Select * from dbo.ZQB_DLK where SJQ_ID<>'Q01' Order By BDZ_ID'),  
    改成
    Query_ZQB_DLK.SQL.Add('Select * from dbo.ZQB_DLK where SJQ_ID<>'+quotedstr(Q01)+' Order By BDZ_ID'),  

    Query_ZQB_DLK.SQL.Add('Select * from dbo.ZQB_DLK where SJQ_ID<>''Q01'' Order By BDZ_ID' )
      

  3.   

    Query_ZQB_DLK.SQL.Add('Select * from dbo.ZQB_DLK where SJQ_ID<>'+quotedstr('Q01')+' Order By BDZ_ID'),quotedstr('Q01')是为字符串+上单引号,而DELPHI中''两个单引号在字符串中代表一个单引号SQL SERVER 语句中  SJQ_ID<>'Q01'字符串是要加‘号的
      

  4.   

    对于可变条件,最好使用参数,当然完全用string组合也是可以的,但这个是会被注入的,使用参数变不会的。
      

  5.   

    建议统一SQL语句为string型
      

  6.   

    D里面字符串上单引号是2个变1个比如''A'',运行后结果是'A',你的问题要在Q01两边各再加1个引号
      

  7.   

    当然了,建议用一个showmessage();
    显示一当前的SQL语句是否标准