因一个小软件中需要操作另外一个大型软件的数据库(paradox)使用ODBC连接("Driver={Microsoft Paradox Driver (*.db )};dbq=" + dbPath + ";defaultdir=" + dbPath + ";CollatingSequence=ASCII;"),但在部署的时候又不想带BDE安装(原因是BDE没有提供单独的安装程序,也许是我没有找到,而都是整合在BCB或者delphi中的,给客户的时候总不能带100多M的安装程序吧),于是就按照网上介绍的方法,只拷贝一些文件,然后在安装的时候修改注册表来达到BDE驱动的目的(另外在网上流传着一个所谓的BDE驱动就是那个叫顺和达什么的,好像也是这种方法,在新系统下安装这个驱动也不行),但是这么做在我开发的这个环境下没问题(因我曾经安装过delphi7.0,在新系统下安装delphi7后访问数据库也没有问题。),换一个新系统就出现访问失败,错误信息是“Unexpected error from external database driver (11270)”。特此将该问题发在PB版,这里都是Borland的忠实拥趸,请各位不吝赐教,解决者100分相谢。附:我搜索到的BDE打包方法:
用Delphi编写的数据库程序在发布时需要同时发布BDE(Borland Database Engine),但BDE占用空间较大(不同版本大小不一,最新的Delphi5有17M多),远比一般的程序本身要大。但实际上,有些文件用不上的,所以我们可以在发布时用Delphi附带的InstallShield制作安装程序来定制BDE驱动,这样可以精简我们的数据库应用程序。实现与应用参考Bde32.HLP中"Introduction to Borland Database Engine"下的"Core BDE Files",可以得知BDE的关键文件及其作用,可以以此作为依据来精简BDE驱动程序。下面是各个文件的作用:一、不可缺少的文件Blw32.dll:语言驱动函数库。Idapi32.dll:BDE基本函数库。Fareast.btl、Usa.btl:远东语言及美国语言驱动程序,对中文软件不可缺少。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 provider驱动程序函数库,如果不用TProvider控件,可以不要。Idqbe32.dll:QBE驱动程序函数库,如果不用Query By Example,可以不要。Idsql32.dll:SQL查询驱动程序函数库,如果不用TQuery进行查询,可以不要。Idapi32.cfg:BDE配置文件,如果程序中没有特殊要求,可以不要。也可以在BDE管理器中设置正确后再分发。四、其它文件(一般不用)其它的*.BTL:其它国家和地区的语言驱动程序,可以不要。BDE32.HLP、BDE32.CNT:BDE帮助文件,可以不要。BdeAdmin.exe、BdeAdmin.HLP、BdeAdmin.CNT:BDE管理器及帮助文件,如果不会发生要求软件用户自己配置BDE的情况时,可以不要。DataBump.EXE、DataBump.HLP、DataBump.CNT:数据库数据转移工具及帮助文件,可以不要。Localsql.HLP、Localsql.CNT:SQL查询语句帮助文件,可以不要。Sqllnk32.HLP、Sqllnk32.CNT:SQL连接帮助文件,可以不要。在根据需要选择文件后,还要写注册表文件。可以手工设置,但最好在程序中设置,需要设置的注册表键值有(在调用数据库操作前需要有正确的键值存在,各对应键值在Win9x/NT/Win2000下均相同):数据驱动程序所在目录的设置:HKEY_LOCAL_MACHINEEngine(字符串值)语言驱动程序所在目录的设置:HKEY_LOCAL_MACHINE(字符串值)语言驱动程序文件名:HKEY_LOCAL_MACHINE Software_LIB#(字符串值)  其中#为编号,按顺序为0、1、2、3......如:HKEY_LOCAL_MACHINE_LIB0="fareasst.btl"  HKEY_LOCAL_MACHINE_LIB1="usa.btl"做完这些就足够了,按此办法即可有效减少BDE驱动程序的大小,例如只用TTable控件操作Paradox数据库,则只要Idapi32.dll、Blw32.dll、Idr20009.dll、Fareast.btl、Usa.btl、Idpdx32.dll六个文件即可。这些文件可放在任何一个目录,只要在注册表指明即可。BDE由17.4M减到1.48M,压缩一下就只有几百K了,这使程序大为减小。

解决方案 »

  1.   

    paradox本来就是桌面数据库,你要访问的机器上既然已经有了paradox的应用就应该已经有了bde的驱动,干嘛还要你自己在安装一下。
      

  2.   

    感谢jinjazz的回答,几天了,终于有人看了,谢谢。。不过有一种情况jinjazz可能没有遇到过,就是即使客户机上装了使用paradox 的应用程序, 比如PB或者Delphi写的一些应用程序,并且在不安装BDE的时候也可以正常访问,但是如果我用ODBC或者ADO直接去访问Paradox数据库,仍然会出问题,或者使用miscrosoft office中的access去导入或者连接paradox表时就会提示外部表不是期待的格式等这些错误。另外还有一种情况是虽然都是paradox文件,可能还有版本的区别,我同样的操作导入有的paradox数据库就正常,有的就不行。我想到的原因:1、paradox数据库的版本。
    2、微软提供的内置的paradox驱动的问题。但是从网上我都没有找到满意的解决办法。现在在开发阶段使用的是安装delphi环境或者BCB环境,到发布的时候怎么办啊。。
      

  3.   

    bde有专门的安装程序的,没有数百兆。
    我以前也试图用你主帖的方法打包,但是经常出现莫名其妙的错误。后来不用paradox了也就没有再研究过。
      

  4.   

    谢谢jinjazz,您有专门的BDE安装程序?我从网上没有找到合适的,找到的就是我在主贴中说的那个什么顺和达软件的补丁。我跟踪了注册表和文件夹,发现那个安装程序做的工作跟介绍的BDE打包程序一样。如果jinjazz您有现成的BDE专门安装程序,还请不吝分享,十分感谢!
      

  5.   

    今天终于找到解决办法了,共享一下:使用installshield 打包时把BDE5.11包进去。。之前之所以没有发现,是因为安装的installshield objects里面没有这个object,最近新换的机器,重新配置环境时安装installshiled时装了全部的objects,发现居然有BDE5.11,于是一起打包进去,(好像还需要写注册表,正在测试。)问题解决。可惜了我的100分哦,哈哈
      

  6.   

      神啊,这可咋办呢,用 installshield自带的BDE5.11有时行,有时不行,晕死了。
    继续找寻答案。。
      

  7.   

    转移到delphi区碰碰运气,看有没有大侠们有更好的解决办法。谢谢了
      

  8.   

    我们公司就是用InstallShield打包BDE的,安装完全没有问题。
      

  9.   

     太fit了,找到问题出现的规律了,打包文件安装后,不能立即使用,在客户机需要等待一段时间,数据连结就可以用了。这个如何是好了。继续郁闷!!!
      

  10.   

    刚装好,等个十分八分的可以用一下,一旦运行了主程序(Timeslips by Sage),我的程序就又访问不了它的数据库了。
      

  11.   

    仔细检查,发现有个TsTimer的进程在同时占用着Paradox数据库,造成共享冲突问题一步一步明朗,即将解决
      

  12.   

    OK 了,终于搞定了。。
    回头看看其实问题很简单,但是由于对 paradox数据不熟悉,并且忽视了那个程序自身对数据库的独占性,走了不少弯路,浪费了不少时间。唉,惭愧啊。从CSDN上各位的回答上看,现在用Paradox的真真的不多了。结贴。友情up的都有重分,谢谢大家!
      

  13.   

    我的问题与你的差不多,你怎么解决的啊?麻烦分享一下,我也是自学delphi的,好些东邪不明白,现在现在有一个基于paradox的数据库应用程序需要发布,用了网上介绍的打包方法不行啊,也是与你的贴相同。如果你能把具体方法和步骤介绍一下吗?在此非常感谢!
      

  14.   

    使用“Paradox”数据库保存数据,为方便分析,想转为Excel表格请帮助我来打开paradox数据库,转为Excel表格
    好么 ?我可以付些报酬。
    联系我  [email protected]   qq  :345060434 大海  
    手机  13063513343  张伟