MemTableEh 内存表使用

内存表有很多种,常见的有ClientDataSet、KBMemTable、MemTableEh、FDMemTable 大部分内存表都实现列自由序列化和数据导入导出,而这里要介绍的MemtableEh 由于版本限制,不得不通过低级的方法来实现一些其他内存表可以轻松搞定的事情
1.表复制
  • 表复制包括2种情况,一是只复制表结构,不复制数据;二是同时赋值数据和表结构
    目前MemTableEh 只有一个 CopyStructure 方法,即复制表结构,复制数据只能遍历数据集逐个复制:

示例:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DBGridEhGrouping, StdCtrls, DB, GridsEh, DBGridEh, DBTables,
  MemTableDataEh, MemTableEh;

type
  TForm1 = class(TForm)
    Table1: TTable;
    DBGridEh1: TDBGridEh;
    DataSource1: TDataSource;
    Button1: TButton;
    MemTableEh1: TMemTableEh;
    DataSource2: TDataSource;
    DBGridEh2: TDBGridEh;
    Button2: TButton;
    Table1NAME: TStringField;
    Table1SIZE: TSmallintField;
    Table1WEIGHT: TSmallintField;
    Table1AREA: TStringField;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  s:string;
begin
  s:=Dbgrideh1.GetFooterValue(0,DBGridEh1.Columns[2]);
  caption:=s;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  i:Integer;
begin

  MemTableEh1.CopyStructure(table1);
  MemTableEh1.CreateDataSet;
  MemTableEh1.Active:=True;

  Table1.First;
  MemTableEh1.DisableControls;

  while not Table1.Eof do
  begin
     with MemTableEh1 do
     begin
       Append;
       for i:=0 to Table1.FieldCount-1 do
       begin
         FieldByName(Table1.Fields[i].FieldName).Value:=Table1.FieldbyName(Table1.Fields[i].FieldName).Value;
       end;
       Post;
     end;
     Table1.Next;
  end;
  MemTableEh1.Append;
  MemTableEh1.FieldByName('Name').Value:='总计:';
  MemTableEh1.FieldByName('Size').Value:=DBGridEh1.GetFooterValue(0,DBGridEh1.Columns[1]);
  MemTableEh1.FieldByName('Weight').Value:=DBGridEh1.GetFooterValue(0,DBGridEh1.Columns[2]);
  MemTableEh1.Post;
  MemTableEh1.EnableControls;

end;

end.

效果:
image

posted @   丹心石  阅读(586)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2021-07-13 Vue 认知
点击右上角即可分享
微信分享提示