安装完成后,启动应用程序时出现非法操作:database engine (error$2109);见者有分 在其他机器上安装或配置BDE或ODBC等数据库引擎 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 BDE打包时没有做好,我也遇到此类问题!还有,如果你是在Win2000下打包,在Win98下安装,正常都是会出现这种问题…… 用的是database desktop作的数据库,用Ttable部件连接。 但我在windows2000下安装也会出现同样的问题 要必,你用DELPHI安装盘安装一下,自定义安装,只安装BDE就可以了…… 那你就是说用odbc或者bde连数据库的喽,试试看在你安装程序的机器上设置odbc数据源。 用的是setup generator软件打的包 Delphi程序员都知道,在数据库应用程序开发完成后,要发布程序需要同时发布BDE(Borland Database Engine),否则会引起错误“A Error occurred while attempingto initilize Borland Database Engine(Error $2109)”。当觉得程序太大而辛辛苦苦精简自己的程序到满意时,却发现BDE管理程序器需要9M之巨,不由感到沮丧,真有点自己的努力被糟蹋的感觉。不过也不必太沮丧,只要肯尝试,还是有办法来精简BDE的。首先来看看BDE目录中的文件,所有文件确实有近9M大吧。不过有些可能是用不到的,关键文件的作用可参见Bde32.HLP中“Introduction to Borland Database Engine”下的“Core BDE Files”,其中列出了BDE的关键文件及其作用,可以以此作为依据来尝试精简BDE驱动程序。下面是各个文件的作用:一、不可缺少的文件Blw32.dll:语言驱动函数库。Idapi32.dll:BDE基本函数库。Fareast.bll、Usa.bll:远东语言及美国语言驱动程序,对中文软件不可缺少。Idr20009.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功能,可以不要。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="fareasst.bll" HKEY_LOCAL_MACHINE\Software\Borland\BLW32\LOCALE_LIB1="usa.bll"就这些了,按此办法即可有效减少BDE驱动程序的大小,例如只用TTable控件操作Paradox数据库,则只要Idapi32.dll、Blw32.dll、Idr20009.dll、Fareast.bll、Usa.bll、Idpdx32.dll六个文件即可。这些文件可放在任何一个目录,只要在注册表指明即可。OK,BDE由9M多减到不到2M,ZIP一下就700多K了,比原来的应用系统减少了不少吧。 Fareast.bll、Usa.bll这两个文件找不到。还有没有更简便的方法? 关注中:何不直接用DELPHI 带的Install打包? delphi excel查询问题 合并文件流后输出不会 ActiveXForm如何创建事件? 对sql 2000数据的文本字段添加数据时,出现错误? 如何捕捉异常弹出的窗口里面的字 散分啦---简单---网关/路由/代理 三个概念有什么本质的区别? update问题 更改数据表名,在SQL中语法中的命令是什么??? 有没有人可以提供一份分布式应用系统的源程序啊? 如何进行汉字转换? 在其它机器安装完成后,启动应用程序时出现非法操作:database engine (error$2109).见者有分!谢谢! 怎样查询数据?
还有,如果你是在Win2000下打包,在Win98下安装,正常都是会出现这种问题……
首先来看看BDE目录中的文件,所有文件确实有近9M大吧。不过有些可能是用不到的,关键文件的作用可参见Bde32.HLP中“Introduction to Borland Database Engine”下的“Core BDE Files”,其中列出了BDE的关键文件及其作用,可以以此作为依据来尝试精简BDE驱动程序。下面是各个文件的作用:
一、不可缺少的文件
Blw32.dll:语言驱动函数库。
Idapi32.dll:BDE基本函数库。
Fareast.bll、Usa.bll:远东语言及美国语言驱动程序,对中文软件不可缺少。
Idr20009.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功能,可以不要。
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="fareasst.bll"
HKEY_LOCAL_MACHINE\Software\Borland
\BLW32\LOCALE_LIB1="usa.bll"
就这些了,按此办法即可有效减少BDE驱动程序的大小,例如只用TTable控件操作Paradox数据库,则只要Idapi32.dll、Blw32.dll、Idr20009.dll、Fareast.bll、Usa.bll、Idpdx32.dll六个文件即可。
这些文件可放在任何一个目录,只要在注册表指明即可。OK,BDE由9M多减到不到2M,ZIP一下就700多K了,比原来的应用系统减少了不少吧。
何不直接用DELPHI 带的Install打包?