我们有一个应用程序将其数据库文件存储在 Program Files 目录的子文件夹中。这些文件在 Vista 和 Windows 7 中被重定向到 VirtualStore。我们使用 Microsoft DataReports (VB6) 表示来自数据库的数据。到目前为止,一切都很好。
但是我们现在想使用 Crystal Reports XI 来表示来自数据库的数据。我们的想法是不要将这些数据从我们的程序传递给 CR,而是让 CR 通过 ODBC 使用系统 DSN 从数据库中检索它。通过这种方式,我们希望为我们的用户提供更多的灵活性来设计他们自己的报告。不过,我们想要确保的是,当用户安装我们的程序或程序调用 Crystal Report 时,这些系统 DSN 配置正确。
例如,是否有一种聪明的方法可以使用系统变量来执行此操作,而不必编写检查操作系统版本、是否在操作系统上启用 UAC、是否已解除对 Program Files 文件夹的写入限制等的例程然后调整他的系统 DSN 以指向 C:\Program Files\OurApp\Data 文件夹或 C:\Users\User\AppData\VirtualStore\Program Files\OurApp\Data 文件夹?
也欢迎提出完全不同的方法的建议!