sql 对 recno的支持是不够好的,不过只在编辑状态吧,浏览时还是可以用的。

解决方案 »

  1.   

    如果用recno不能获得序号的,可以通过以下的函数实现获取recno//下面是一个得到当前记录序号的函数
    function TFormDataModule.GainRecNo(Sender: TObject): integer;
    var rec:integer;
    begin
    rec:= (Sender as TTable).moveby(-maxint); 
    (Sender as TTable).moveby(-rec);
    GainRecNo:=-rec;      
    end;
    下面有一例子源码,希望对你有所帮助,(数据库为SQL Server)
            有两个Tquery(连接pubs):
            Tquery            SQL
    --------------------------------------------------
            query1        select * from #tmp
            query2        SELECT identity(int,1,1)as my ,[emp_id], [fname],  
                              [minit], [lname], [job_id], [job_lvl], [pub_id],    
                              [hire_date] 
                          into #tmp    ----结果赋值到一个临时表中
                          FROM [pubs].[dbo].[employee]
    源码: 
    --------------------------------------------------
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, Grids, DBGrids, Db, DBTables;type
      TForm1 = class(TForm)
        Query1: TQuery;
        DataSource1: TDataSource;
        DBGrid1: TDBGrid;
        Button1: TButton;
        Query2: TQuery;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
    begin
      query2.ExecSQL ;
      query1.Open ;
    end;end.
    虽然时dlephi的,可以修改成 bcb的
      

  2.   

    int TfrmData::GetRecNo()
    {
    int Rec;        Rec = qStudent->MoveBy(-MAXINT);
            qStudent->MoveBy(-Rec);        return -Rec;
    }翻译成bcb是这样吗?不管用亚