我在Delphi里,用ado控件得到一记录集,代码如下:
ADODataSet1.Recordset:=ADOConnection1.Execute('select ino_id from GL_accvouch')
如果语句写成上面,就会正确的得到一个记录集,但如再写成下面这样
ADODataSet1.Recordset:=ADOConnection1.Execute('select ino_id from GL_accvouch where pr=1')
只是在sql语句中加了一个查询条件,记录集的个数就为0,声明符合这条件语句的数据的确存在。
请各位高手,指教,谢谢!

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    adodataset1.Recordset:=adoconnection1.Execute('select * from alluser where loginname=''孤单的人1''');
    adodataset1.open;
    end;
      

  2.   

    譬如 str:String;
    str:='a';
    ADODataSet1.Recordset:=ADOConnection1.Execute('select ino_id from GL_accvouch where pr='''+str+'''')
      

  3.   

    我的字段pr是数字类型,不是字符类型,如果是字符类型('select * from alluser where loginname=''孤单的人1''')这样做,可以正确的得到记录集。但,现在我的字段pr是一个数字类型,不是字符类型。我先定义一个变量,然后让条件等于这个变量,这样做,最后的记录集的数还是0,还是不能解决急,请各位,再想想。
      

  4.   

    str:String;
    str:='1';
    ADODataSet1.Recordset:=ADOConnection1.Execute('select ino_id from GL_accvouch where pr='''+str+''''
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
        adodataset1.Recordset:=adoconnection1.Execute('select * from feiyong where xf=1');
        adodataset1.open;
    end;我照你的意思做,我的字段xf是个数字类型的,可以的啊,一点问题都没有呢?不知道你那是怎么回事情了,你是不是组件的属性没有设置好啊.还有这个
    procedure TForm1.Button1Click(Sender: TObject);
    begin
        adodataset1.Recordset:=adoconnection1.Execute('select * from jobs where job_id=1');
        adodataset1.open;
    end;上面的是SQL Server 2000中pubs数据库中的jobs表
    也是一点问题都没啊