DELPHI以前学过一会,后来做别的都忘记了不少,最近有些原因打算拾起来用用。
由于之前一直用的SQL,头一次使用Oracle数据库,所以比较生疏,下载了DOA的控件,版本是DOA.v4.1.1
想查询数据库中的一个表'SXF000DAB11'中的所有数据,发现不知道怎么查看所查询结果的记录数,也就是行数啦~
所以想求教各位用什么参数获取记录数?我使用的是DOA中的OracleSession和OracleQuery两个控件,
命令如下啦~
var
row,count:integer;
begin
OracleSession1.LogonDatabase := 'jqdb';
OracleSession1.LogonUsername := 'u1cs';
OracleSession1.LogonPassword := 'u1cs';
OracleSession1.Connected := true;
OracleQuery1.Close;
OracleQuery1.Clear;
OracleQuery1.Session := OracleSession1;
OracleQuery1.SQL.Text := 'select * from SXF000DAB11';
OracleQuery1.Execute;
count := OracleQuery1.FieldCount;
row : =OracleQuery1.?    //这里用什么函数读取所查询结果的行数?
end;
麻烦各位了~没有OracleQuery1.RecordCount这个函数
OracleQuery1.RowCount显示的是1=。=

解决方案 »

  1.   

    我改用ADO了,但还是有问题。
    oracle数据库中的数据是只读的,我没办法更改,只能做查询。
    用到了 这些控件
        ADOConnection1: TADOConnection;
        ADOQuery1: TADOQuery;
        DBGrid1: TDBGrid;
        DataSource1: TDataSource;
    单纯的控件之间绑定好以后查询select * from SXF000DAB11可以在DBGrid1中显示,但是如果用命令控制就会提示ADOQuery1:dataset not in edit or insert mode。
    命令如下
    procedure TForm2.Button1Click(Sender: TObject);
    begin
    ADOConnection1.Close;
    ADOConnection1.ConnectionString:='Provider=MSDAORA.1;User ID=u1cs;Data Source=jqdb';
    ADOConnection1.Open;
    ADOQuery1.Close;
    ADOQuery1.ClearFields;
    ADOQuery1.Connection:= ADOConnection1;
    ADOQuery1.SQL.Text:='select * from SXF000DAB11';
    ADOQuery1.Open;
    DataSource1.DataSet:=ADOQuery1;
    DBGrid1.DataSource:=DataSource1;
    end;
    请指教一下。
      

  2.   

    ADOQuery1:dataset not in edit or insert mode。
    ADOQuery1:数据集不是编辑或插入模式。
    ADOQuery1的属性是可以设置的:
    ADOQuery1.edit;
    ADOQuery1.insert;