我在制作数据库程序时,用的是ADOTable连接数据库,但其和数据库连接采用的是绝对路径,当数据库的存储位置改变后,程序不可应用。我想知道如何能让连接数据库采用相对路径。请指教!!!谢谢!!!

解决方案 »

  1.   

    用ADOConnection,所有的ADOTable和ADoQuery的Connection属性都设置为ADOConnection
    然后ADOConnection的ConnectionString属性在程序中间动态赋值。
      

  2.   

    ShowMessage(ExtractFilePath(Application.ExeName));
      

  3.   

    请问楼上,是将这条语句加在ConnectString后吗?
    谢!
      

  4.   

    PATH=ExtractFilePath(Application.ExeName)
      

  5.   

    procedure TDM1.DataModuleCreate(Sender: TObject);
    var
      smm:String;
      StrCn:String;
    begin
      smm:='chwdong';//密码
      GStr_ExePath:=ExtractFilePath(Application.ExeName);//路径
      StrCn:=  'Provider=Microsoft.Jet.OLEDB.4.0;'+
               'User ID=Admin;Data Source='+GStr_ExePath+'data\bbx.mdb;'+
               'Mode=Share Deny None;Extended Properties="";'+
               'Locale Identifier=2052;Persist Security Info=False;'+
               'Jet OLEDB:System database="";Jet OLEDB:Registry Path="";'+
               'Jet OLEDB:Database Password='+smm+';'+
               'Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=0;'+
               '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';
      try
        with ADOConnection1 do
        begin
          if Connected = True then
            Connected:=False;
          ConnectionString:=StrCn;
          Connected:=True;
        end;
      except
        Application.MessageBox(
          '连接数据库时发生错误!',
          '错误',
          MB_OK+MB_ICONSTOP);
        Application.Terminate;
      end;
    end;