关于Delphi内存表的使用说明

关于Delphi内存表的使用说明:1.建立临时表   数据输入是开发数据库程序的必然环节。在Client/Server结构中,客户端可能要输入一批数据后,再向服务器的后台数据库提交,这就需要在本地(客户端)建立临时数据表来存储用户输入的数据,待提交后,清除本地表数据。2 建立临时表如下:function CreateTableInMemory(const AFieldDefs:TFieldDefs):TDataSet; var TempTable:TClientDataSet; begin   TempTable:=nil;   Result:=nil;   if AFieldDefs<>nil then   begin    try   TempTable:=TClientDataSet.Create(Application);    TempTable.FieldDefs.Assign(AFieldDefs);    TempTable.CreateDataSet;    Result:=(TempTable as TDataSet);   Except    if TempTable<>nil then TempTable.Free;   Result:=nil;    raise;   end; end; end;//在程序中按如下方法使用: procedure TForm1.Button1Click(Sender: TObject); var ADataSet:TDataSet;  begin    ADataSet:=TDataSet.Create(Self);    with ADataSet.FieldDefs do    begin     Add('Name',ftString,30,False);    Add('Value',ftInteger,0,False);    end;  with DataSource1 do   begin    DataSet:=CreateTableInMemory(ADataSet.FieldDefs);    DataSet.Open; end;   ADataSet.Free; end; 一、 Delphi使用内存表1.1 Delphi创建内存表步骤:1. 创建一个Ttable实例。2. 设置一个DataBaseName为一个目录或是已有的数据库别名。3. 指定TableName的值。4. 设置TableType属性指明要创建的数据库表类型。(如果此属性为ttDefault表示数据库类型与TableName指定值的扩展名对应)。5. 调用TTable.FidldDefs对象的Add方法向数据库表中添加字段。Add有4个参数: 字段名:string。 字段类型:TfieldType。 字段大小:Word。一般只对String和Memo类型使用。 字段是否NotNull: Boolean。6. 使用TTable.IndexDefs.Add()方法定义索引。Add有三个参数: 索引名:string; 索引字段名:string; 索引类型:TIndexOptions;7. 调用TTable的CreateTable。这种方法适用于本地表。SQL表要用TQuery来创建。代码如下:varMemTable: TTable;beginwith MemTable.Create(Self) dobeginDatabaseName := 'c:\Temp';TableName := 'Test';TableType := ttParadox;with FieldDefs dobeginAdd('Age', ftInteger, 0, True);Add('Name', ftString, 25, False);Add('Weight', ftFloat, 0, False);end;IndexDefs.Add('', 'Age', [ixPrimary, ixUnique]);CreateTable;end;end;二、 kbmMemTable使用简述2.1 kbmMemTable创建步骤:1. 创建一个kbmMemTable对象实例。2. 调用kbmMemTable.FidldDefs对象的Add方法向数据库表中添加字段。Add的方法和Delphi相同。3. 使用kbmMemTable.IndexDefs.Add()方法定义索引。Add的方法和Delphi相同。4. 调用kbmMemTable的CreateTable。重要的区别:因为kbmMemTable不需要BDE的支持。所以不要指明DatabaseName, TableName和TableType三个属性。  代码如下:with kbmMemTable1 dobeginwith kbmMemTable1.FieldDefs dobeginClear;Add('Period', ftInteger, 0, false);Add('VALUE', ftLargeInt, 0, false);Add('BytesField', ftBytes, 20, false);Add('Color', ftInteger, 0, false);Add('Date', ftDate, 0, false);Add('Memo', ftMemo, 0, false);Add('AutoInc', ftAutoInc, 0, false);end;with kbmMemTable1.IndexDefs dobeginClear;Add('Index1', 'VALUE', []);end;CreateTable;end;三、与Delphi创建内存表的对比3.1主从表功能kbmMemTable可以象其它TDataSet一样,通过设置MasterSource和MasterField来简单的完成主从表的操作。3.2 SQL功能  没有发现kbmMemTable可以支持SQL语句的操作。它提供按字段排序和对排序字段的查找功能。三、 kbmMemTable特点从其它TDataSet得到数据。代码如下:LoadFromDataSet(Table1, [mtcpoStructure, mtcpoProperties]);这样kbmMemTable就完全得到来自一个DataSet对象中的全部数据.保存和载入内存表中数据的功能Delphi的TTable不提供SaveToFile功能。kbmMemTable提供保存到文件的功能,保存的文件有两种格式:Options: TkbmMemTable.SaveFlags; 1. 二进制格式。kbmMemTable.SaveToBinaryFile('c:\test.bin', Options).kbmMemTable1.LoadFromBinaryFile('c:\test.bin')2. .csv格式。kbmMemTable.SaveToFile('c:\test.csv', Options);kbmMemTable1.LoadFromFile('c:\test.csv')(一种Excel支持的文档格式)打开后的内容如下:@@FILE VERSION@@ 200 @@TABLEDEF START@@ Period=Integer,0,"Period","",10 VALUE=LargeInt,0,"VALUE","",15 BytesField=Bytes,20,"BytesField","",10 Color=Integer,0,"Color","",10 Date=Date,0,"Date","",10 Memo=Memo,0,"Memo","",10 AutoInc=AutoInc,0,"AutoInc","",10 CALC=String,20,"CALC","",20 @@TABLEDEF END@@ Period VALUE BytesField Color Date Memo AutoInc CALC1 198 0 02/11/2001 This is a memo%n2001-11-2 10:19:52 1 0 1-二月2 196 3 03/11/2001 This is a memo%n2001-11-2 10:19:52 2 1 2-三月在文档的头部份描述了表的字段结构,在下面则是数据区域。 

恩泽云商商城app下载-恩泽云商商城app是恩泽网络推出的生活服务应用,是阿里云114智慧商城F2C电子商务平台;在这里你可便捷的选购数码电子、服装服饰、日化美容和副食特产等工厂直供商品,让你享有轻松便捷的实惠购物,您可以免费下载安卓手机恩泽云商商城。
2016-03-06
39健康网官网是中国第一健康门户网站,中国互联网百强网站。39健康网旗下的手机app软件致力于传播全新的健康理念,在健康新闻、名医专栏、就医用药信息查询、医生在线咨询等方面持续领先,引领在线健康信息
2023-07-08
能量保护罩是什么?蚂蚁森林保护罩怎么用?昨晚支付宝推出的一项全新功能,可谓大快人心——蚂蚁森林能量保护罩正式上线。有人再想偷你能量,有办法让他起再早都没用啦!,蚂蚁森林保护罩在哪 能量保护罩怎么打开
2017-08-16
现在手机已经全面介入我们的人生、工作、娱乐……而众多手机功能中,APP无疑是NO.1。移动互联网的稳定快速发展带动了App行业的迅速崛起,在如此庞大的App海洋中,哪些是商务人事必备的App呢?本商务App频道将为你推荐一些实用的商务App应用软件,欢迎下载使用。
2023-07-08
简约梦魔盒app下载-简约梦魔盒app是一款多功能手机工具箱,简约梦魔盒app无需root就能直接使用,通过简约梦魔盒app用户可以免费使用qq名片点赞、网名设计、视频解析等功能,操作简单,非常实用,您可以免费下载安卓手机简约梦魔盒。
2020-04-22
易聪云诊所app下载-易聪云诊所是一款医疗挂号服务app,在易聪云诊所app里所有的用户都可以一键快速预约挂号,同时医生用户也可以在此管理自己的病人、药房等等,查看自己的排班情况,感兴趣的的用户快下载易聪云诊所体验吧,您可以免费下载安卓手机易聪云诊所。
2021-09-11
在我妻子的私房钱游戏中,很多小伙伴们最近在询问,第二关怎么过,想知道第二关的具体通关方法是什么。今天小编就为大家来详细的介绍下我妻子的私房钱第二关通关攻略,快来跟随小编一起看看吧!,我妻子的私房钱第2关怎么过 我妻子的私房钱第二关通关攻略
2017-09-11
,Photoshop打造图片柔和淡彩非主流色教程
2011-10-12
古剑奇谭3游戏中有一个叫做荒魂契的任务,下面来分享一下古剑奇谭3荒魂契任务攻略,给大家一个参考,古剑奇谭3荒魂契任务攻略 古剑奇谭3荒魂契任务怎么做
2018-11-29
赛尔特大陆是可以让玩家玩到在新区新服里狂欢的游戏,那么这次赛尔特大陆新服什么时候开,玩家在新区中又可以拿那个哪些福利,今天小编就为玩家介绍一下赛尔特大陆新区开服时间,让玩家可以在新区中快速的去拿到喜欢的福利。,赛尔特大陆新服什么时候开 赛尔特大陆新区开服时间
2021-07-21