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

  • 主题发起人 主题发起人 MicroZeng
  • 开始时间 开始时间
M

MicroZeng

Unregistered / Unconfirmed
GUEST, unregistred user!
因为如果使用上了Borland的数据库引擎,其安装的文件势必 >= 4M,
为了便于在网上发行,我想在程序中不使用数据库,但是在作如"通信录"等
时不知怎么解决.请各位帮忙.

<以前,我在处理此类问题时是采用TXT文件的格式或INI文件的格式,
但是这些只能适合较少的数据量,对于需要大数据量处理的怎么办?
我这里要处理的数据量是5~50M之间.>
 
1.可以采用一些可以直接读取db,dbf的vcl
2.可以采用odbc
3.采用dbism这种特殊的数据库组件
 
如果各表之间关系不是很大的话,可以考虑TClientDataSet.
文件关闭时保存在当地硬盘上,扩展名为.CDS,几百条记录应该不成问题,
实在不行多建几个TClientDataSet.尽管不能保存索引文件,但在打开时可以建立
问题不大,操作特方便.完全可以摆脱BDE,只要一个DLL,是那个记不清楚了,
可以翻翻书.
 
用dbase数据库,用MDBF控件,可以直接读取数据库,不用BDE
 
近几个试用了几个直接读取DBF数据库的控件,但总感觉不太爽。
TClientDataSet对记录较少的程序还可以,数据太多就会说内存不够。
其它的第三方控件不是索引不太方便,就是提供的METHOD太少。不知
哪位大侠有更好的经验?
 
1、发布时不需要发布完整的BDE
只发布你使用的数据库类型即可。

例:以Install Shiled发布
(1)如果用SQL Server,
则在SQL Links中只选中MSSQL

(2)如果使用Paradox或dBase等数据库
a)选择Partial BDE,只选择需要的Driver
b)不安装SQL Links

2、使用TClientDataSet
需要的动态连接库是DBClient.DLL

强烈建议你用方法1
因为TClientDataSet功能不是很强,
BDE这么好的东西还是不要轻易放弃
只安装需要的部分可以小很多。
 
1、做通讯录什么的自己写个自定义文件格式就成了;
2、可以写文本文件;
3、用特殊读XBASE/CLIPER数据库的构件,比如APOLLO,我有FOR D4 WITH SOURCE的,holcyan也不错。
 
to CJ:
Can you tell me where you download the apollo for delphi4?
 
说明:我只要是要解决单机的数据库读取问题。

写成文本文件的读取效率太低了。

如有CJ所说的“特殊读XBASE/CLIPER数据库的构件,比如APOLLO”,
但是不知道其效率如何,而且是不是具有查询功能(优化过的)。

如果单独是对于XBase的数据库,因为结构自己知道,有Seek来读取也不难,
但是执行效率低。

Borland的BDE确实是好,但是太大了,安装至少也要3M。

各位还有更好的解决方法吗?
 
下面是APOLLO的自我介绍:

POLLO is a Delphi/C++Builder-specific incarnation of the
SuccessWare Database Engine (or SDE), and was voted Best
Delphi Add-In in the 1996 Delphi Informant Reader's
Choice Awards and Best Database Tool in the 1997 Delphi
Informant Reader's Choice Awards.

APOLLO provides Delphi and C++Builder database
application developers with high-speed, multi-user local
access to the data and index files used by CA-Clipper
(.DBF/.DBT/.NTX), FoxPro(.DBF/.FPT/.IDX/.CDX), as well as
our super-fast, compact/compound HiPer-SIx.NSX/.SMT index
and memo file formats. APOLLO is a 300k, plug 'n' play,
native VCL replacement for the Borland Database Engine
(BDE).

 
我手上有个读dBase文件的组件,
不需要BDE,
使用方法和TTable一样。
有源代码,
曾经发现一点小错误,被我们改掉了。
写信到e.w@263.net索取
 
1.不用数据库不可能,因为对数据库的操作如排序、求总和/求平均值、记录检索等
使用数据库只需一条指令即可,用过Foxbase、Dbase的程序员对此不可能没有体会。
而要撇开数据库,只有用文件类型了,而且还要考虑文件的存储、取数据及对数据
的操作你都得自己编程实现,算法效率也不一定很高。
譬如排序吧,若非计算机专业的程序员用的最多的而简单的就是“冒泡了”,这在
数据结构中是效率最低的。
建议三思而行!?
 
要看你多数据库的需求程度,如果数据库是辅助作用,操作不多,我的办法是不错的。
否则,用BDE吧,或者去 BDE ALTERNATIVE看看 //我把它拉下来了:)
 
TO CJ:

bde alternative 能不能给我一个,或告诉我哪里有?

还有你的 apollo for delphi4。

货到手后另开问题付款,OK?
 
解决的办法还是很多,但是关键的是对于所提供的方法能否对数据库进行方便的操作,
支持增加、删除、查找、排序等功能,而且要执行的效率比较高。

李颖、CJ、wuyi所说的方法好象都可行,能否请你们谈谈使用这些构件的体会,
再决定哪一种是最佳的方案。
 
wuyi:谁提的问题?和和,我发了!
 
啊?写的都没了?
详细请见:
<a href = "http://www.kylecordes.com/bag/index.html"> yysun 推荐的 BDE Alternative 站点 </a>
 
TO CJ:
我想要APOLLO for D4, 网上实在找不到,请给发到 caiwucb@sun.zju.edu.cn
 
如果有,也给我一份:
<a href="xqzeng@263.net">xqzeng@263.net</a>
 
后退
顶部