编了一个数据库的小东东,数据控件用了两个,ADOConnection和ADOTable,连接的是本地源程序文件夹的ACESS数据库,连接时是使用了Provider=Microsoft.Jet.OLEDB.4.0这个引擎的。整个连接字符串是:“Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=D:\djgxb\data\djgxb.mdb;Mode=ReadWrite;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False”如果我想搬去别的机器使用,请问我除了拷贝源程序过去外,还要在对方机器安装什么东西吗?还有现在我的源程序是在D盘的,数据库是直接用路径连接的,如果考到别的盘是不是会找不到数据库啊?如果要考到别的盘也能用的话要怎么做才行呢?

解决方案 »

  1.   

    相应的驱动应该有,还有程序中的用到的相关dll要包含
      

  2.   

    先把控件ADOConnection的ConnectionString属性的值清空,再在From的OnCreate事件中写如下代码:ADOConnection.ConnectionString:='数据库连接字符串';其中一段修改为:DataSource='+extractfilepath('主程序文件名')+'\data\djgxb.mdb;再重新编译一下程序就行了。
    你把编译好的主程序和数据库随便放在哪里都可以正常使用了,我的程序就是这样搞的,你可以试一下。
      

  3.   

    改用相对路径连接,用ado控件的,把程序直接copy过去就可以用,如果用bde就要打包bde驱动
      

  4.   

    ruigang:
        可以说详细一点吗?能写详细代码我看看吗?
      

  5.   

    procedure TForm1.FormCreate(Sender: TObject);
    var
      conStr : String;
    begin
      DataSource:=extractfilepath('主程序文件名')+'\data\djgxb.mdb';
      if ADOConnection.connected=true then
        ADOConnection.connected:=false; 
      ADOConnection.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;' + conStr + ';Mode=ReadWrite;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
      ADOConnection.connected := true;
    end; 
      呼,好长啊
      

  6.   

    更正:
        将第5行的data source改为变量conStr