那位高手指点一下,最近我用ADOConnection连接Access数据库,
不知道怎样解决绝对路径和相对路径问题,我先在程序外面建立一个UDL,
我想让我的程序随便在那个盘只要修改UDL路径就可以用,请问一下我该在哪个事件
如何写代码,是不是在Beforeconnection写什么代码?

解决方案 »

  1.   

    ConnectionString = 
          'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data   Source=..\database\loading.mdb;Mode=Share Deny None;Extended Properties' +
          '="";Persist Security Info=False;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:Globa' +
          'l Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OL' +
          'EDB:New Database Password="";Jet OLEDB:Create System Database=Fa' +
          'lse;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don'#39't Copy Locale' +
          ' on Compact=False;Jet OLEDB:Compact Without Replica Repair=False' +
          ';Jet OLEDB:SFP=False'在你的连接窗体内将SDOconnection路径改成:..\database\loading.mdb.
    就可以了!
    或者用文本打开把“Source=”后面改成上面我说的也可以!
      

  2.   

    把前面的路径去掉,只留*.mdb,就好了
      

  3.   

    procedure TDataModule2.ADOConnection1BeforeConnect(Sender: TObject);
    var
      str1,path:string;
    begin
       path:=Extractfilename(Application.ExeName);
       ADOConnection1.ConnectionString:='file name='+path+'\..\cs.udl';
       str1:='file name='+path+'cs.udl';
       showmessage(str1);
    end;
    请问一下我这样写为什么不对?
    我怎样获得Cs.udl的路径,
    path:=Extractfilename(Application.?????)
    问号处怎样写啊?
      

  4.   

    adoCoon.ConnectionString:=PromptDataSource(Application.Handle ,'');动态创建