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.
效果:
分类:
Delphi 编程经验
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2021-07-13 Vue 认知