我用delphi+ado+access编了一个程序,现在想脱离自己的机器,在其他的机器上拷贝或者安装后能直接用,请问如何进行打包?万分感谢!
附:现在我的程序一拷贝到别的机器上就找不到数据库,必须重新设置数据库路径。

解决方案 »

  1.   

    数据库联接要用相对路径
    var
      constr:string;
      str_TestId: string;
    begin
      try
      StrExePath := extractfilepath(application.ExeName);//取得当前应用程序的路径
      //配置数据库
      ADOConnection1.LoginPrompt := false;
      constr:='Provider=Microsoft.Jet.OLEDB.4.0;';
      //constr:=constr+'Password="N4S7=y6k0s0n=K8Y9";User ID=;';
      constr:=constr+'Password="";User ID=;';
      constr:=constr+'Data Source='+StrExePath+'data\lms.mdb;';
      constr:=constr+'Mode=Share Deny None;Extended Properties="";';
      constr:=constr+'Locale Identifier=2052;Jet OLEDB:System database="";';
      constr:=constr+'Jet OLEDB:Registry Path="";';
      constr:=constr+'Jet OLEDB:Database Password=nsky;';
      constr:=constr+'Jet OLEDB:Engine Type=5;';
      constr:=constr+'Jet OLEDB:Database Locking Mode=1;';
      constr:=constr+'Jet OLEDB:Global Partial Bulk Ops=2;';
      constr:=constr+'Jet OLEDB:Global Bulk Transactions=1;';
      constr:=constr+'Jet OLEDB:New Database Password="";';
      constr:=constr+'Jet OLEDB:Create System Database=False;';
      constr:=constr+'Jet OLEDB:Encrypt Database=False;';
      constr:=constr+'Jet OLEDB:Don''t Copy Locale on Compact=False;';
      constr:=constr+'Jet OLEDB:Compact Without Replica Repair=False;';
      constr:=constr+'Jet OLEDB:SFP=False';
      adoconnection1.ConnectionString:=constr;
      adoconnection1.Connected:=true;
      except
      Application.MessageBox(
                   '数据库连接失败!',
                   '提示',MB_OK + MB_DEFBUTTON1 + MB_ICONINFORMATION);
      exit;
      end;
    打包程序可以用delphi自带的(安装程序时最后一个选项),也可以用其他工具,比如最流行的installshield系列
      

  2.   

    对,数据库连接一定要用相对路径.
    例如你的数据库文件放在:c:\project\demo\data\main.mdb
    你的程序放在c:\project\demo\demo.exe
    那你的这个程序在引用数据库文件的时候,使用 "data\main.mdb"就可以了,不要使用c:\.....否则放到别的机器和目录下就会无法使用.
      

  3.   

    发布MDAC的安装程序,确定相对路径就行了。如果是98的机器一定要安装MDAC才行,除非以前他已经装过。
      

  4.   

    只要把ACCESS的数据库放在和你的应用程序的同一目录下 然后用相对路径的方式连接数据库就可以了  打包的时候把数据库包进去 一点问题都没有啊
      

  5.   

    是因为你没有安装ADO驱动的事,你在打包的时候一定要把MDAC打包进去就可以,如果没有打包进去,不安装ADO驱动,当然找不到数据库了.
      

  6.   

    上面基本上都说了,最重要的就是数据库的相对路径和把MDAC打包。其他应该没有什么问题
      

  7.   

    如果要用绝对路径,就要做一个配置文件,里面记录数据库路径。打包工具可以用istool等,比较简单。
      

  8.   

    1.数据库联接要用相对路径
    2.98系统要装mdac
    3。打包,无所谓了,很多工具都可以。