我用BDE,MsSQl,数据库我备份还原到目标机器上,现在只求打包到目标机器上
安装能立马运行.
目前完成的是:打包安装到目标机器,去控制面版配置BDE,然后才能运行
目前安装的打包工具:
Wise Installation System - Professional Edition
小颖安装程序制作专家V4.6
以前的贴不管有没有答案今天都结了,这个问题一定一定要帮我搞清楚

解决方案 »

  1.   

    关键所在
    用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_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.btl"  HKEY_LOCAL_MACHINE\Software\Borland \BLW32\LOCALE_LIB1="usa.btl" 
    做完这些就足够了,按此办法即可有效减少BDE驱动程序的大小,例如只用TTable控件操作Paradox数据库,则只要Idapi32.dll、Blw32.dll、Idr20009.dll、Fareast.btl、Usa.btl、Idpdx32.dll六个文件即可。这些文件可放在任何一个目录,只要在注册表指明即可。BDE由17.4M减到1.48M,压缩一下就只有几百K了,这使程序大为减小。
    下面我们就以用InstallShield来制作一个Paradox数据库应用系统的安装程序为例:
    1.启动程序设置有关文件目录路径,进入Setup Checklist;
    2.在Set the Visual Design中设置程序名、程序目录、安装程序主窗口等;
    3.在Specify Components and Files中设置Groups and Files项,在Program Files中加入用户的所有程序文件和数据库表文件,以及下列文件:Idbat32.dll、Usa.btl、Idapi.cfg、Charset.cvb、Bantam.dll、BLW32.dll、Idapi32.dll、Fareast.btl、Idpdx32.dll、Idr20009.dll、Idsql32.dll(以上文件必须含目录路径);
    4.在Dialog Boxes中设置所需安装对话框;
    5.在Make Registry Changes中设置Keys项,在HKEY_LOCAL_MACHINE中加入software\borland\blw32和software\borland\database engine两项,并且在blw32值中加入
    "Blapipath '以上文件目录'"、"LOCALE_LIB0 '以上文件目录'\Fareast.bll"和"LOCALE_LIB1 '以上文件目录'\Usa.bll",在database engine值中加入"Dllpath '以上文件目录'"、"Configfile01 '以上文件目录'\Idapi.cfg";
    6.在Specify Folder and Icons中根据实际要求设置有关项目;
    7.在Run Disk Builder中设置安装盘的有关信息;
    8.最后进行Test the Installation和Create Distribution Media即可完成安装程序的制作
      

  2.   

    如果要用BDE打包,安装程序制作中有绑定BDE的功能,并且能调BDE的连接驱动。
    打包时直接安装起就能使用。
    俺以前用的是delphi5自带的Install。
      

  3.   

    俺也是用的delphi5自带的Install。,感觉还不错
      

  4.   

    又答那个去了,是不是我问的不清楚,我语文没学好
    目前完成的是:打包安装到目标机器,去控制面版配置BDE,然后才能运行比如数据库名:databases name,server name,user name.......这些配完才能运行,我估计那些东东写到注册表或什么文件上(文件也得给路径呀,当前目录或注册表中?)我不想手动去控制面版配置BDE,写databases name,server name,user name.......
    之类的东东,告诉我怎么做?
      

  5.   

    为什么没人答怎么自动配置databases name,server name,user name.......
    难道不用配置吗?
      

  6.   

    看你怎么访问数据库了,如果你在先前的机器上是通过ODBC建立DSN来访问的话,就要在注册表里该创建一些东东了.
      

  7.   

    我照下面步骤连数据库的,不算ODBC吧,具体说说怎么自动配置databases name,server name,user name.......1、先运行  开始菜单->Delphi程序组中的“BDE Administrator”(下称BDA)
       也可运行Delphi菜单->DataBase->Explorer
    2、选BDA菜单->Object-New,弹出驱动类型选择框(Database Drvier Name)
    3、选MSSQL,按确定
    4、在对应的Treeview中输入你喜欢的名称如:MyLink
    5、在对面的Grid中设定:
          DATABASE NAME=NorthWind //你的数据库名,这里用的是SQLserver自带的NorthWind例子库
          SERVER NAME=MyServer //你的数据库服务器名,就是装了SQLServer的机器了
          USER NAME=sa   //用户名,SQLserver默认是sa
          OPEN MODE=READ/WRITE
          PASSWORD=  //加上你的数据库用户sa密码,初次安装时为空。
        其它都用默认值。
    6、按Object菜单->Apply保存。
    7、进入Delphi中,在窗体中加上一个DataBase控件,一个Table控件,
       DataBase.AliasName设为MyLink
       DataBase.DataBaseName设为你喜欢的名字如:LinkNow
       DataBase.LoginPrompt为False
      设Table.DataName 为 LinkNow ,然后选表吧!
    这样就设置完成了!
      

  8.   

    我按照你的方法设置了一次,然后到注册表中搜索,并没有找到希望的结果.
    而且BDA的标题栏里有一段"D:\Borland Shared\Bde\idapi32.cfg"
    看来你的设置并没有存放到注册表里,而是存放在这个配置文件里.
    楼上说:了Idapi32.cfg:BDE配置文件,如果程序中没有特殊要求,可以不要。也可以在BDE管理器中设置正确后再分发。
      

  9.   

    楼上既是说,把配好的D:\Borland Shared\Bde\idapi32.cfg拷入我的程序同一文件夹发布
    即可?
    我手头不便,暂没法测试,望知明确答案
      

  10.   

    我以前做过, 如果使用database 控件,那么就可以在里面直接配置连接数据库(*.db)
    然后打包的时候直接把数据库拷贝就可以了……但是我感觉这么做不是很好, 请问各位 更好的办法
      

  11.   

    http://218.56.11.178:8020/web/technology.aspx-> 应用程序打包问题的解决方案 /利用WISE工具捕获注册表信息 //其中:数据库配置wise有的做的就特别好,如odbc,只要你的本地机配置好了,引用一下就ok了。添加-》导入-》确定,OVER。
      
      

  12.   

    Installshield中可以配置BDE,但现在的趋势是用ado,不知道怎么办?,听听高手