我写了一个数据库单机,连接MDB文件用,用ADO的OLE连接,得到一个目录,Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\delphi\DB.MDb;Persist Security Info=False问题是我要放到另外一台机器,就肯定连不上了,我怎么在里面写当前目录呢,不如我只连接当前目录DB里的DB.MDB呢

解决方案 »

  1.   

    你把D:\delphi\替换成当前的目录不就得了么?可使用Application.ExeName 和Windows函数获得当前的目录
      

  2.   

    楼上的没懂我的意思,数据文件和程序在一个目录里比如原来是c:\delphi\db\db.mdb那我现在只要写db\db.mdb就可以,但是我不是在Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\delphi\DB.MDb;Persist Security Info=False这句话里怎么写
      

  3.   

    AdoConnection.Connection := Files='你的路径+文件名'好像是.具体可能写错了..你看看帮助吧.,
      

  4.   

    这时要在程序刚启动时动态建立你的TADOConnection控件的,譬如在你的数据模板的OnCreate事件中写入:
    procedure TMainData.DataModuleCreate(Sender: TObject);
    begin
      if FileExists(ExtractFilePath(Application.ExeName)+'DB.mdb') then
      begin
        adcConn.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;'
                                 +'Data Source='
                                 +ExtractFilePath(Application.ExeName)+'DB.mdb;'
                                 +'Persist Security Info=False;';
        adcConn.Connected:=True;
      end
      else
      begin
        Application.MessageBox('数据库文件丢失!',PChar(Application.Title),MB_OK+MB_ICONWARNING);
        Application.Terminate;
      end;
    end;
      

  5.   

    同意楼上的意见不过加一句,
    procedure TMainData.DataModuleCreate(Sender: TObject);
    begin
      if FileExists(ExtractFilePath(Application.ExeName)+'DB.mdb') then
      begin
        adcConn.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;'
                                 +'Data Source='
                                 +ExtractFilePath(Application.ExeName)+'DB.mdb;'
                                 +'Persist Security Info=False;';
         try 
           adcConn.Connected:=True;
         finally  
           adcConn.Connected:=false;
             Application.MessageBox('请检查参数是否正确!',PChar         (Application.Title),MB_OK+MB_ICONWARNING);
          exit;
         end;
      end
      else
      begin
        Application.MessageBox('数据库文件丢失!',PChar(Application.Title),MB_OK+MB_ICONWARNING);
        Application.Terminate;
      end;
    end;
      

  6.   

    try 
           adcConn.Connected:=True;
         finally  //<<<---这里应该是except吧
           adcConn.Connected:=false;
             Application.MessageBox('请检查参数是否正确!',PChar         (Application.Title),MB_OK+MB_ICONWARNING);
          exit;
    end;
      

  7.   

    最好和程序放在同一个目录或是相对固定的目录如程序同级目录的data
    下这样就可以写成 Data Source=./data/db.mdb;