delphi手动创建dataset并插入值

来源:互联网 发布:昆仑墟暗器进阶数据 编辑:程序博客网 时间:2024/06/07 17:37
unit Unit1;interfaceuses  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,  Vcl.Controls, Vcl.Forms, Vcl.Dialogs,DB,DBClient, Vcl.Grids, Vcl.DBGrids;type  TForm1 = class(TForm)    dbgrd1: TDBGrid;    procedure FormCreate(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  class function AddDataToSet(AdsData: TDataSet): TDataSet;  class function CreateDataSet(dsTemp:TDataSet): TDataSet;  end;var  Form1: TForm1;implementation//创建datasetclass function TForm1.CreateDataSet(dsTemp:TDataSet): TDataSet;varcdsTemp: TClientDataSet;begintry    //创建DataSet    cdsTemp := TClientDataSet.Create(Application);    if dsTemp.FieldDefs <> nil then    begin      cdsTemp.FieldDefs.Assign(dsTemp.FieldDefs);      cdsTemp.CreateDataSet;      result := (cdsTemp as TDataSet);    end;finally    //内存释放    dsTemp.Free;end;end;class function TForm1.AddDataToSet(AdsData: TDataSet): TDataSet;varintLoop:Integer;begin//打开数据集AdsData.Open;with AdsData dobegin    for intLoop := 0 to 10 do    begin      Append;//添加      FieldByName('Code').AsString := 'Code' + intToStr(intLoop);      FieldByName('Name').AsString := 'Name' + intToStr(intLoop);      FieldByName('Code').AsInteger := intLoop;      post;//提交    end;end;end;{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);vardsTemp:TDataSet;begin   //初始化   dsTemp := TDataSet.Create(Application);   with dsTemp.FieldDefs do    begin      Add('code',ftString,8);      Add('name',ftString,20);      Add('Number',ftInteger);    end;   dsTemp:=TForm1.CreateDataSet(dsTemp);   TForm1.AddDataToSet(dsTemp);  dsTemp.Open;  while not dsTemp.Eof do  begin    showmessage(string(dsTemp.FieldByName('Name').Value)) ;    dsTemp.Next ;  end ;end;end.

 

DataSet有两个东西,一个是表结构FieldDefs,一个是TClientDataSet。这个.net还是有一些不同。

 

0 0
原创粉丝点击