我正在 Lazarus 中使用 SQLite 后端创建一个简单的 CRM,但我不知道如何为 Lazarus 提供数据库文件的相对路径。当我发布应用程序时,这是必需的,因为我不知道不同目标计算机上的完整文件路径是什么。
在Delphi中,我知道您可以将数据库的文件名(没有进一步的文件路径)放入连接器的连接字符串属性中,只要该文件位于项目文件夹中,它就可以工作,但等效于Lazarus (DatabaseName) 不允许将相对文件路径放在那里。
Lazarus论坛上据说有解决方案,但它们看起来很复杂,我不明白它们。
在 Lazarus 上不可能以简单的方式做到这一点吗?在这种情况下,我最好尝试从 Lazarus 运行 Python 以从相对路径获取绝对路径?
我需要在 Windows 和 MacOS 上工作的相对路径
对我来说,它也从未在 Delphi 中普遍工作,尽管有时取决于您打开项目的方式,它可能在 IDE 中工作。它还可能取决于您用作数据库组件的内容。
无论如何,你可以使用
在Windows上找到工作目录sExePath := ExtractFilePath(paramstr(0));
对于控制台程序,而对于 GUI 应用程序,您可以这样做
sExePath := ExtractFilePath(Application.ExeName);
然后您可以使用
制作路径includetrailingpathdelimiters(sExepath+relativepath)
并在启动时设置属性。