BDE内置了in Memory Table这种数据库格式,建立了BDE别名后,应该是可以远程访问的,不
知道dxmemtable是在BDE的这个特色的基础上发展来得,还是它自己定义的一套新的冬冬,如
果不是BDE的技术,可能不能简单的实现远程调用。
但是我知道有一个叫做kbmMemTable的,写的相当完善。推荐看看。Indy 9有一个TCPdataset
的范例,
就是使用的这个kbmMemTable控件,实现内存数据库的远程访问。
http://www.optical.dk/delphi/prod01.htm
http://www.nevrona.com/Indy/download90.html
dxmemtable只能在客户端,试图通过远程访问是不太现实的。具体实现方案我同意楼上的
关于内存表的使用说明
一、 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来创建。
代码如下:
二、 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三个属性。
代码如下:
三、与Delphi创建内存表的对比
3.1主从表功能
kbmMemTable可以象其它TDataSet一样,通过设置MasterSource和MasterField来简单的完成主从表的操作。
3.2 SQL功能
没有发现kbmMemTable可以支持SQL语句的操作。它提供按字段排序和对排序字段的查找功能。
三、 kbmMemTable特点
从其它TDataSet得到数据。
代码如下:
这样kbmMemTable就完全得到来自一个DataSet对象中的全部数据.
保存和载入内存表中数据的功能
Delphi的TTable不提供SaveToFile功能。
kbmMemTable提供保存到文件的功能,保存的文件有两种格式:
Options: TkbmMemTable.SaveFlags;
1. 二进制格式。kbmMemTable.SaveToBinaryFile('c: est.bin', Options).
kbmMemTable1.LoadFromBinaryFile('c: est.bin')
2. .csv格式。kbmMemTable.SaveToFile('c: est.csv', Options);
kbmMemTable1.LoadFromFile('c: est.csv')
(一种Excel支持的文档格式)打开后的内容如下:
在文档的头部份描述了表的字段结构,在下面则是数据区域。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/42307.html