在我的F盘用delph7编写一个数据库程序,使用access数据库.
编译后复制到其他盘上运行时他还是到F盘调数据,
我的问题是:如何让可执行文件在自己所在的路径下调用数据库
(也就是如何在delph中使用相对路径)

解决方案 »

  1.   

    var sPath string;  sPath := ExtractFilePath(Application.ExeName);  //当前程序路径
      

  2.   

    ShowMessage(ExtractFilePath(Application.ExeName));
      

  3.   

    假如数据库在你的执行文件目录的DB子目录下,则
    var sPath : string;
     sPath := ExtractFilePath(Application.ExeName);  //当前程序路径
     sPath:=sPath+'DB\';这时,sPath就是你的数据库所在目录
      

  4.   

    同一楼上各位,还有
    ExtractFilePath(ParamStr(0))  //当前程序路径
      

  5.   

    getcurrentdir()程序当前的路径extractfilepath(application.exename);应用程序所在的目录
      

  6.   

    我觉得楼主问题不是如何获得delphi工作路径,而是在连接access数据库时就应该使用相对路径。这样以后只要数据库放在程序所在路径下,就可以读取它。而不用将客户的路径模拟的和你的一模一样,程序中也不用再做任何路径设置。编程时先把程序保存在某个目录下(例如f:\test),再将数据库文件考到相应子目录下(例如f:\test\Data),设置ADOConnection的ConnectionString,在数据链接属性的连接页的3.将初始化目录设为.\Data\test.mdb,测试连接成功。发布时,只要保证程序与数据库间相对路径不改变就行了。
      

  7.   

    ExtractFilePath(ParamStr(0))+'\Access.mdb'
      

  8.   

    如果你的程序和Access.mdb在同一目录下,相对路径就是Access.mdb
    如果还有子目录,就是  "子目录\Access.mdb" 如"data\Access.mdb"就行了
      

  9.   

    sPath := ExtractFilePath(Application.ExeName)+'Datas\Datas.mdb';