寻找解决替换数据库的方法...(100分)

  • 主题发起人 主题发起人 MicroZeng
  • 开始时间 开始时间
TClientDataSet对付小数据库没问题,
具体操作如:增加,删除,修改,查询和Table几乎差不多
但是
1.不支持自动增量
2.需要dbclient.dll
3.记录数量上百时,就能感觉出读写的停顿
4.如果是Delphi3.0,那么 Filter 属性不支持 like
 
用install shieled怎么操作,能把主要的说出来吗?
 
>>???退回了!
多大的东东?请发到 caiwucb@sun.zju.edu.cn 吧,一般没问题。
你的邮箱CJCJC@ONLINE.SH.CN有问题吗,我直接给你发信也给退回了。
不知是什么原因。

 
Delphi在4版发布后,对TDataClientSet的支持加重了力度,我用它开发的数据量
在3万以上,没有什么速度问题发生,但如果数据超过10M的话,可能就又问题了。
在发布时只需要附带一个DBClient.DLL就可以了,如果用到Provider的话还要注册
Stdvcl。
在一般小的应用中推荐使用DataClientSet,随着机器性能的不断提高,内存不是
问题,我想大的应用利用它仍然会有较大的潜力。
 
genius,有道理。我在东找西找,试了这个又试那个后,最后觉得还
是它最好。可惜的是还没有APOLLO for D4, 不知道它怎么样?
 
使用DataClientSet后安装程序有多大?
一般比较简单的数据库操作的程序.
 
使用TClientDataSet后只需要附带

DBClient.Dll(v5.0.1.32 205K)

你真小气,这么点大小都要计算。

难道你现在在用软盘发布吗??
 
看来这是不错,你们那里教育网的信退了,连附件一起退,查点炸死自己:((
我MAIL YYSUN了。

蠢问题:TClientDataSet 不是做 MIDAS 的吗?怎么??...
谁能MAIL个简单的例子?
cjcjc@online.sh.cn
cjcjc@263.net
 
在设计期间,
在Form中放一个TClientDataSet
双击,就可以编辑字段了,

TClientDataSet完全是一个内存中的表,
你必须自己载入数据和保存数据。
运行时可以通过LoadFromFile、LoadFromStream、
SaveToFile、SaveToStream方法完成。

其他的使用基本和别的TDataSet类似。
 
apollo已经给孙老师了。不知道为何未贴出,可能他老人家比较忙
TCLIENTDATASET我已经会用了,不知道数据库的稳定性如何?
这文章不错,贴出来:
用Delphi开发“瘦”单机数据库应用系统


  大家知道,Delphi具有强大的数据库应用程序开发功能,其Client/Sever版本可以开发从一般的单机数据库应用系统到普通Client/Sever应用系统、瘦客户型Client/Sever应用系统直到基于Web的多层应用,这其中自然离不开Borland数据库引擎(BDE)的功劳。不过需要注意的是在分发应用程序的时候必须同时分发BDE文件,Borland(Inprise)建议用户使用Delphi附带的InstallShield制作安装程序,以免遗漏BDE文件或BDE文件配置不正确。所需BDE文件根据应用程序所操纵的数据库对象有所不同,最少也需要上兆的空间。这对于大型应用系统来说无足轻重,可是,对于只操纵有限几个数据表并且应用程序(?.exe)本身只有几百KB的小型单机数据库应用系统来说似乎有头重脚轻之感。

  那么,有没有办法解决上述矛盾,开发出“瘦”单机应用程序呢?Delphi Client/Sever(3.0+)版本提供了一个TCientDataSet元件,可以解决这个问题。该元件本来是用来开发多层应用中的瘦客户端程序的,其实我们也可以用它来代替BDE及其它数据集元件(TBDEDataSet,TDBDataSet及其派生类)用于单机(单层)应用,只不过在设计期(编程时)操作稍微复杂一些。


  ●编程步骤示例如下:

  1.启动Delphi,建立一个新应用,将Main Form 取名为Form1,从IDE 元件选项板上分别选取一个TClientDataSet元件(取名ClientSataSet1)、一个 TTable元件(取名Table1)、一 个TDataSource元件(取DataSource1)、一个TDBGrid元件(取名DBGrid1,根据具体情况也可以选取其它数据控制元件)放在Form1上 。

  2.通过Object Inspector将Table1的数据库及数据表名属性设为所要操纵的数据库对象,假如没有现成的数据表可用,可以运用Delphi附带的数据库桌面工具(Database Desktop)建立新的数据表。

  3.在Form1上选定ClientDataSet1,点击鼠标右键弹出选单,从中选定Assign local data命令打开ClientDataSet1 Data 对话框,可以发现Table1已在列表框中,选取并确定。这样一来,就将Table1中的数据表完全复制到ClientDataSet1中去了。重新选定ClientDataSet1,点击鼠标右键弹出选单,从中选定Save to file 命令打开保存文件对话框,将ClientDataSet1中的数据保存到一个以cds为默认扩展名的文件中,这里我们取名为MyThin.cds。根据需要还可以从弹出选单中选定Fields Editor命令对数据表字段进行编辑,然后再保存。

  4.将Table1从Form1中删除(此时对于我们的单机应用而言它已完全没有用场了),通过Object Inspector,将DataSource1的DataSet属性设为ClientDataSet1,将DBGrid1的DataSource属性设为DataSource1。假如已将ClientDataSet1的Active属性设为True的话,我们就可以看到数据表的数据已显示在DBGrid1的栅格中。

  5.在Form1的OnCreat事件句柄中键入如下代码:

  ClientDataSet1.LoadFromFile(′MyThin.cds′);

  相应地,在Form1的OnDestroy事件句柄中键入如下代码:

  ClientDataSet1.SaveToFile(′MyThin.cds′);

  6.编译并运行。至此一个“瘦”单机数据库应用框架已经建立。不用附带BDE,可执行文件只有500KB左右(不包括数据?.cds文件),一张软盘就能搞定。

  TTable 元件的直接上级是TDBDateSet元件,TDBDataSet的直接上级是TBDEDataSet元件,在TBDEDataSet元件中封装了BDE的API,因此要在运行期操纵TTable元件就必须使用BDE。而TClientDataSet元件的直接上级是与TBDEDataSET的直接上级一样的TDataSet元件,无须使用BDE。我们在设计期将TTable等TDataSet元件中操控的数据复制到TClientDataSet元件中,并保存在数据文件(?.cds)中,这样就跳过了BDE,应用程序直接对数据文件(?.cds)进行读写。而TClienDataSet元件所封装的对数据进行操纵处理的功能(有很多是重载于TDataSet的虚拟抽象方法和属性)并不比TBDEDataSet元件极其派生类差多少,基本上能满足单机数据库应用的要求。

 
to CJ:
我已从YYSUN处得到APOLLO4, 但安装时老是死机. 解包后另有TROUBLE/
DOUBLE两个子目录,不知作什么用?

我已另开一新问题<<关于APOLLO4安装>>.
 
TO CJ:
现在发现是少FTP32.DLL, 不知你有这个东东吗?
 
APLLO我会试,什么FTP32.DLL?什么哪个?
 
不知道YYSUN给我的是否就是你寄的,反正我安装时提示缺少库, 后来经
查发现是少FTS32.DLL.
 
其实可以用ODBC+Access,理由如下:
1.Access数据库结构科学,符合现代单机数据库标准.
2.ODBC驱动程序不大, 况且Access的ODBC驱动似乎
Win98自带, 不用你操心.
3.ODBC访问Access速度不错.
我刚做了一个大富翁离线阅读器(今天下午发给yysun了),
就是用ODBC Express+Access, 只发布了一个exe文件,
才几百k.
 
TO CJ:

不知你的“Accdaoen ADO访问ACCESS 97的东西,好象有 SOURCE“还有没有,
能否给我寄一个。

请寄到 wuyicai@263.net
 
还是用BDE,4M的文件里大部分是废物,
你运行程序,然后删除这些文件,不能
删除的保留,相信保留下的文件不会太大。
 
多人接受答案了。
 
后退
顶部