我现在要写一个类,里面有很多关于数据库的操作,现在想写一个方法,关于查询的,我现在想把查询的结果放在一个数据集中,这个方法被其他类调用时,可以用dbgride显示,请问怎么把查询的结果放在数据集中,被其他的类调用?

解决方案 »

  1.   

    function myquery(这里这参数):TDataSet;
      

  2.   

    可以放在TDataSet也可以放在TClientDataSet里,后面的方法更多些!
      

  3.   

    var a:_Recordset;
    a:=ADOTable1.Recordset;//类中定义的ado控件,返回查询数据集给a
    adoQuery1.Recordset := a; //窗体重的ado控件,用来显示a中数据。
      

  4.   

    function MyQuery(SQLStr : string):TDataSet;
      

  5.   

    object Form1: TForm1
      Left = 210
      Top = 114
      Width = 696
      Height = 480
      Caption = 'Form1'
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      OldCreateOrder = False
      PixelsPerInch = 96
      TextHeight = 13
      object DBGrid1: TDBGrid
        Left = 136
        Top = 160
        Width = 320
        Height = 120
        DataSource = DataSource1
        TabOrder = 0
        TitleFont.Charset = DEFAULT_CHARSET
        TitleFont.Color = clWindowText
        TitleFont.Height = -11
        TitleFont.Name = 'MS Sans Serif'
        TitleFont.Style = []
      end
      object Button1: TButton
        Left = 248
        Top = 328
        Width = 75
        Height = 25
        Caption = 'Button1'
        TabOrder = 1
        OnClick = Button1Click
      end
      object DataSource1: TDataSource
        Left = 40
        Top = 40
      end
    end//上面是窗体代码
    //下面是单元代码unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, DB, DBTables, Grids, DBGrids;type
      TForm1 = class(TForm)
        DBGrid1: TDBGrid;
        DataSource1: TDataSource;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
        function m(mSQL:String):TDataSet;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}function tform1.m(mSQL:String):tdataset;
    var d:TQuery;
    begin
      d:=TQuery.Create(Self);
      d.DatabaseName:='DBDEMOS';
      d.SQL.Add(mSQL);
      d.Open;
      Result:=d;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      DataSource1.DataSet:=m('Select * From animals');
    end;end.