保证:程序无论安装在什莫路径下,都可以访问数据库?

解决方案 »

  1.   

    双击ado控件啊。自己看代码!
      

  2.   

    选择提供者:Microsoft Jet 4.0 OLE DB Provider选择连接:*.mdb
      

  3.   

    选择ADOConnetction放入窗体中,点击属性:connectionString有边的三个小点点,再选择Build...,选择就可以了。一般用相对路径,即你的可执行文件和你的Access数据库放在同一个文件夹下。
      

  4.   

    简单,你自己建立一个文本文件,然后进DOS把后缀改为udl文件,然后在制作安装的时候调用这个UDL文件让用户设置,设置完后调用另外一个无窗体的EXE文件读取UDL文件内容并写入注册表,注意UDL文件就是INI文件,可以通过一个TINIFILE类对象来读其内容。最后在你的程序启动中进注册表读这个已经写好的串并赋给ADOCONNECTION。CONNECTIONSTRING就可以了!
      

  5.   

    狙击手的方法并不复杂,而是你没有理解:var
       IniName:string;
    begin
       IniName:=ExtractFileDir(Application.Exename)+'\your.udl';
       AdoConnection.ConnectionString:='FILE NAME='+IniName;
    end;这样你可以在程序外部编辑your.udl,如果你实在不知道怎么创建udl文件,那你就把C:\Program Files\Common Files\System\Ole DB\Data Links\DBDEMOS.udl改改名字,双击编辑你需要的数据源即可(我上面有说明)
      

  6.   

    renzhm:thanks a lot!
    我先试一下!
      

  7.   

    renzhm:
       我按你说的方法作了,可是不行,你还在线吗?帮忙啊!
      

  8.   

    不可能吧,你需要重新配置udl文件的,如果数据库在网络上,你还需要共享这个文件夹,贴出你的代码看看:(只帖连接数据库的代码和udl的内容)
      

  9.   

    我将path.udl放到源程序路径下,双击编辑数据源,选择数据库名字,连接测试成功,打包后,
    在别的机器上运行,找不到数据库.
      

  10.   

    当然找不到啦,你必须手动重新配置path.udl文件,不需要改源程序,打包后,在别的机器上运行,你的数据库就成了网络数据库啦!
      

  11.   

    我的数据库是单机的,打在包中,path.udl也手动配置过了,数据库和执行文件要安装在一个目录下.清在指教!
      

  12.   

    原来这样!你把Access2000/98驱动也打入包里了吗?
      

  13.   


      数据库和执行文件安装在一个目录下
      source code:
      
      AnsiString DBFileName = ".\\demo.mdb";
      AdoConnect->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source="+DBFileName;