主题:为什么不能离开开发环境?
nonfish
[专家分:0] 发布于 2006-11-07 16:49:00
以前从来没有用过delphi,最近因为工作需要,急切间选用delphi7作了一个查询并更改sqlserver数据库的程序,用到ODBC和BDE作数据库连接,delphi的书也来不及看,瞎猫碰死老鼠般随便写了一个程序,功能是实现了,但是有两个问题却不知如何解决,只好求助各位大侠了!
1、编译成exe后还是不能脱离delphi环境,报错大意为不能启动Borland数据库引擎,装上delphi7后就可以运行了,不知应该怎样才能脱离开发环境;
2、在windows XP下装上delphi7、配好ODBC即可运行,但是在windows 2000下即使配好ODBC、装上delphi7,并重新编译也不能运行,哪位大侠能告诉我是为什么?
谢谢!
回复列表 (共4个回复)
沙发
wealthy [专家分:1840] 发布于 2006-11-07 17:08:00
因为delphi7安装时,会将ODBC数据库驱动安装好,脱离delphi环境后由于没有ODBC数据库驱动所以程序运行不了,你只要上网下载一个ODBC数据库驱动安装上即可.
板凳
nonfish [专家分:0] 发布于 2006-11-07 17:12:00
谢谢!
3 楼
wealthy [专家分:1840] 发布于 2006-11-07 17:12:00
BDE数据库程序的精简安装
做安装程序时可以手工选择添加数据库的驱动文件,这样可大大减小安装程序的大小。
一、不可缺少的文件
Blw32.dll:语言驱动函数库。
Idapi32.dll:BDE基本函数库。
Fareast.btl、charset.cvb:远东语言驱动程序,对中文软件不可缺少。
Idr20009.dll:错误信息库。
bantam.dll:未知用途,但不可缺少
二、数据库驱动程序(根据需要选择一个或多个)
Idasci32.dll:Ascii文本数据库驱动程序函数库,如果不用Ascii文本数据库,可以不要。
Iddao32.dll:Access数据库驱动程序函数库,如果不用Access数据库,可以不要。
Iddbas32.dll:dBase数据库驱动程序函数库,如果不用dBase数据库,可以不要。
Idodbc32.dll:ODBC数据库驱动程序函数库,如果不用ODBC数据库,可以不要。
Idpdx32.dll:Paradox数据库驱动程序函数库,如果不用Paradox数据库,可以不要。
三、其它驱动程序和配置文件(根据需要选择一个或多个)
Idbat32.dll:批操作驱动程序函数库,如果不用TBatchMove控件或DbiBatchMove类函数,可以不要。
Iddr32.dll:Data Repository驱动程序函数库,如果不用Data Repository功能,可以不要。
// 本文转自 C++Builder 研究 - http://www.ccrun.com/article.asp?i=987&d=7500p4
Idprov32.dll:BDE DataSet provide驱动程序函数库,如果不用TProvider控件,可以不要。
Idqbe32.dll:QBE驱动程序函数库,如果不用Query By Example,可以不要。
Idsql32.dll:SQL查询驱动程序函数库,如果不用TQuery进行查询,可以不要。
Idapi32.cfg:BDE配置文件,如果程序中没有特殊要求,可以不要。也可以在BDE管理器中设置正确后再分发。
四、其它文件(一般不用)
BDE32.HLP、BDE32.CNT:BDE帮助文件,可以不要。
BdeAdmin.exe、BdeAdmin.HLP、BdeAdmin.CNT:BDE管理器及帮助文件,如果不会发生要求软件用户自己配置BDE的情况时,可以不要。
其它*.BLL:其它国家和地区的语言驱动程序,可以不要。
DataBump.EXE、DataBump.HLP、DataBump.CNT:数据库数据转移工具及帮助文件,可以不要。
Localsql.HLP、Localsql.CNT:SQL查询语句帮助文件,可以不要。
Sqllnk32.HLP、Sqllnk32.CNT:SQL连接帮助文件,可以不要。
五、修改注册表
在根据需要选择文件后,还要写注册表文件。这个应该不成问题,可以手工设置,但最好在程序中设置,在发现注册表中没有相应键值时写入,用TRegFile对象用不了几行代码的。需要设置的注册表键值有(在调用数据库操作前需要有正确的键值存在):
数据驱动程序所在目录的设置:
HKEY_LOCAL_MACHINE\Software\Borland\Database Engine\DLLPATH(字符串值)
语言驱动程序所在目录的设置:
HKEY_LOCAL_MACHINE\Software \Borland\BLW32\BLAPIPATH(字符串值)
语言驱动程序文件名:HKEY_LOCAL_MACHINE\ Software\Borland\BLW32\LOCALE_LIB#(字符串值)
其中#为编号,按顺序为0、1、2、3......如:
HKEY_LOCAL_MACHINE\Software\Borland\BLW32\LOCALE_LIB0="fareast.btl"
HKEY_LOCAL_MACHINE\Software\Borland\BLW32\LOCALE_LIB1="usa.btl"
就这些了,按此办法即可有效减少BDE驱动程序的大小,例如只用TTable控件操作Paradox数据库,则只要Idapi32.dll、Blw32.dll、Idr20009.dll、Fareast.btl、charset.cvb.Idpdx32.dll、bantam.dll七个文件即可。
这些文件可放在任何一个目录,只要在注册表指明即可。若将这些文件放在您的可执行程序的安装目录中,也可以不写注册信息。
4 楼
wealthy [专家分:1840] 发布于 2006-11-07 17:20:00
如果你下载驱动后,安装成功了,并程序能运行了,为了让程序安全运行了,还得在其它没安装过delphi7的电脑上多测试,
你在发布程序时,将程序打包成安装包时,必须将ODBC数据库驱动也打包进去.让安装程序同时也安装ODBC数据库驱动.
我来回复