在安装时创建 ODBC 设置?

发布于 2024-08-05 01:13:16 字数 134 浏览 3 评论 0原文

传统上,我的客户端软件通过进入“管理工具”并手动创建新的 ODBC 连接来强制配置 ODBC 源。

是否可以在安装过程中配置新的 ODBC 连接?

与此相关的是,有没有办法捕获现有的 ODBC 连接以供在此理论过程中使用?

Traditionally, my client software forces a configuration of the ODBC source by going into 'Administrative Tools' and manually creating a new ODBC connection.

Is there anyway to configure a new ODBC connection during an install?

On a related note, is there a way to capture an existing ODBC connection for use in this theoretical process?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

通知家属抬走 2024-08-12 01:13:16

我以前使用过 nullsoft 安装程序,他们有一些示例脚本。

http://nsis.sourceforge.net/Create_an_ODBC_entry_for_a_MS_Access_database
注册表

基本上,您可以将正确的值写入 : HKEY_LOCAL_MACHINE "SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources"

使用打包软件中包含的注册表工具。

你用的是哪个?以及什么类型的数据库?

I've used the nullsoft installer back in the day and they have some sample scripts.

http://nsis.sourceforge.net/Create_an_ODBC_entry_for_a_MS_Access_database
http://nsis.sourceforge.net/Check_whether_an_ODBC_entry_exists

Basically you write to the correct values to the registry at: HKEY_LOCAL_MACHINE "SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources"

Use the registry tools included in your packaging software.

Which are you using? and What type of DB?

云仙小弟 2024-08-12 01:13:16

是的,有。整个 ODBC 对象存储在注册表中。您只需创建一些注册表设置。

我假设如果您仍在使用 ODBC,那么您就只能使用 Microsoft Access。以下是 Access 的一些设置示例。如果您的提供商不同,请告诉我们,我们也会提供帮助。

对于这些示例,假设您的 ODBC 连接名称是 MyODBC。

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources
Key:  "MyODBC"
Value: "Microsoft Access Driver (*.mdb)"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC
Key: "FIL"
Value: "MS Access;"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC
Key: "Driver"
Value: "$SYSDIR\odbcjt32.dll"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC
Key: "Description"
Value: "Description you'd like your users to see in Control Panel"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC
Key: "UID"
Value: The Access UserName if any.  This is optional.

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC
Key: "DBQ"
Value: The installation directory/YourDB.mdb

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC
Key: "SafeTransactions"
Value: "00000000"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC
Key: "DriverID"
Value: "00000019"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet
Key: "Threads"
Value: "00000003"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet
Key: "ImplicitCommitSync"
Value: ""

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet
Key: "UserCommitSync"
Value: "Yes"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet
Key: "PageTimeout"
Value: "00000005"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet
Key: "MaxBufferSize"
Value: "00000800"

当然,您使用的安装程序将确切地确定它们的创建方式。

Yes, there is. The entire ODBC object is stored in the Registry. You just have to create some Registry settings.

I'm assuming if you're still using ODBC, then you're stuck with Microsoft Access. Here are some example settings for Access. If your provider is different, let us know and we'll help with that, too.

Say your ODBC Connection name is MyODBC for these examples.

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources
Key:  "MyODBC"
Value: "Microsoft Access Driver (*.mdb)"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC
Key: "FIL"
Value: "MS Access;"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC
Key: "Driver"
Value: "$SYSDIR\odbcjt32.dll"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC
Key: "Description"
Value: "Description you'd like your users to see in Control Panel"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC
Key: "UID"
Value: The Access UserName if any.  This is optional.

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC
Key: "DBQ"
Value: The installation directory/YourDB.mdb

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC
Key: "SafeTransactions"
Value: "00000000"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC
Key: "DriverID"
Value: "00000019"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet
Key: "Threads"
Value: "00000003"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet
Key: "ImplicitCommitSync"
Value: ""

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet
Key: "UserCommitSync"
Value: "Yes"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet
Key: "PageTimeout"
Value: "00000005"

Section: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MyODBC\Engines\Jet
Key: "MaxBufferSize"
Value: "00000800"

Of course, which installer you use will determine exactly how these are created.

猥琐帝 2024-08-12 01:13:16

要回答我自己的问题...

每个 ODBC 配置文件都可以在以下位置找到:

HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI

该配置文件包含以下内容:

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\<ODBC PROFILE NAME>]
"Driver"="C:\\WINDOWS\\system32\\SQLSRV32.dll"
"Server"="<ODBC PROFILE DSN>"
"LastUser"="<LAST USER TO ACCESS ODBC (probably for lock)>"

To answer my own question...

Each ODBC profile is found in:

HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI

The profile contains the following:

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\<ODBC PROFILE NAME>]
"Driver"="C:\\WINDOWS\\system32\\SQLSRV32.dll"
"Server"="<ODBC PROFILE DSN>"
"LastUser"="<LAST USER TO ACCESS ODBC (probably for lock)>"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文