'Select JH,SJRQ From SGGZ Where gxsjwc is null And (ysjbz=''Y'' or ysjbz is Null) And cjdwdm='''+edtCJDWDM.Text+''' Order by JH''Select JH,SJRQ From SGGZ Where gxsjwc is null And (ysjbz=''Y'' or ysjbz is Null) And cjdwdm='''+edtCJDWDM.Text+''' Order by SJRQ Desc'我是在Delphi里面调用的。

解决方案 »

  1.   

    And (ysjbz=''Y'' or ysjbz is Null) 
    and (ysjbz='Y' or ysjbz is null)无论什么时候,引用常量的时候,应该是单引,而不是双引。
      

  2.   

    你跟踪一下,看是什么地方出错,如果是sql.open(s);的地方报错,大多是你的SQL有问题var
       j:string;
    begin
       j:='Select JH,SJRQ From SGGZ Where gxsjwc is null And (ysjbz=''Y'' or ysjbz is Null) And cjdwdm='''+edtCJDWDM.Text+''' Order by SJRQ Desc' ;
       ado.sql.clear;
       ado.sql.add(j);
       ado.open();
    end;将下面的SQL在PL/SQL中执行一下,看是不是通过的
    Select JH, SJRQ
      From SGGZ
     Where gxsjwc is null
       And (ysjbz = 'Y' or ysjbz is Null)
       And cjdwdm = 'edtCJDWDM'
     Order by SJRQ Desc
      

  3.   

    "Select JH,SJRQ From SGGZ Where gxsjwc is null And (ysjbz='Y' or ysjbz is Null) And cjdwdm='''+edtCJDWDM.Text+''' Order by SJRQ Desc"
      

  4.   

    单引号和双引号都有问题,
    "Select JH,SJRQ From SGGZ Where gxsjwc is null And (ysjbz='Y' or ysjbz is Null) And cjdwdm='"+edtCJDWDM.Text+"' Order by JH"
      

  5.   

    ysjbz=''Y'' or ysjbz is Null
    这个也可以这样
    nvl(ysjbz,'Y')='Y'
    主要看你报什么错误
      

  6.   

    我在delphi看了你的SQL,字符串组成没有问题,
    如下:
    Select JH,SJRQ From SGGZ Where gxsjwc is null And (ysjbz='Y' or ysjbz is Null) And cjdwdm='aa' Order by JH可能是你delphi的ADO连接用户权限问题吧,
    或者你的adodataset连接问题;
      

  7.   

    Select JH,SJRQ,SQRQ,cjdwdm From SGGZ Where gxsjwc is null And (ysjbz='Y' or ysjbz is Null) Order by JH
    PL/SQL 里面是可以运行得出正确结果的。
    但是程序里面没结果呀。
      

  8.   

    因为你在PL/SQL里面可能用SYSDBA登录,运行有结果,
    但在DELPHI的ADOConnection里面你用 USERA 登录,所以同样的sql语句查询不出来结果。