数据库用的是access,我用innosetup 打包后,选择在桌面生成快捷方式,安装完以后如果直接点击桌面快捷方式启动程序,却提示找不到数据库。但在安装后的程序文件夹中运行程序又正常,这是为什么呢?

解决方案 »

  1.   

    从桌面打开的话,当前路径指向桌面;
    从程序文件夹打开的话,当前路径指向程序文件夹;
    所以你应该在程序中用ExtractFilePath(Application.ExeName) + 'mydata.mdb'的形式指定数据库路径, 而不能只是简单地设一下相对路径。
      

  2.   

    我是在datamodule 的oncreate事件中指定数据库的,adoconnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Jet OLEDB:Database Password=1;Data Source=db1.mdb;Persist Security Info=False';这里不能用ExtractFilePath(Application.ExeName)而且我刚发现,只要在打包脚本中的有关快捷方式的语句中加上  WorkingDir: "{app}" 就可以指定快捷方式的起始位置,这样就ok了
    还是谢谢你!