Delphi - 如何将连接字符串构建到更改目录位置的 .mdb

Delphi - How build connection string to .mdb that changes directory location

这里有点菜鸟。我在 delphi 从事学校实践工作。我的项目保存在我的一个驱动器上,每次更新程序时,我都会创建一个新版本和一个新目录。示例:

blah-blah\OneDrive\PAT(包含程序中所有文件的文件夹,包括 .mdb)

在这个没有变化的目录中,最终的文件夹名称发生了变化。例如:

blah-blah\OneDrive\PAT\V1

blah-blah\OneDrive\PAT\V2

blah-blah\OneDrive\PAT\V3 等等...

我的问题是我使用的是 .mdb,每次我将文件复制到新的文件夹结构时,我都必须去构建一个新的连接字符串以连接到我的数据库。我正在使用一个简单的 ADO 连接。

如有任何帮助,我们将不胜感激, 提前致谢!

ADO连接字符串可以存放在UDL文件中,其实就是简单的ini文件。然后你必须在 UDL 文件中更改连接字符串,而不是在你的源代码中。 Universal Data Link (UDL) configuration

连接字符串只是一个字符串,因此您可以像处理任何其他字符串一样在代码中操作它。表达式 ExtractFilePath(Application.ExeName) returns Exe 所在位置的路径,因此您只需将 Mdb 文件名的路径部分设置为该路径。

一种方法是在您的代码中为 连接字符串值并在其中放置一个占位符作为 Mdb 的路径,就像这样

const
  scConnectionString = 'blahblahetc%pathtomdb%mymdb.mdbblahetc';

然后在打开连接之前使用 StringReplace 函数替换 run-time 处的正确路径,如

var
  APath : String;
[...]
  APath := ExtractFilePath(Application.ExeName);
  AdoConnection1.ConnectionString := StringReplace(scConnectionString, '%pathtomdb%', APath, []);