代码之家  ›  专栏  ›  技术社区  ›  Greg Buehler

在安装时创建ODBC设置?

  •  1
  • Greg Buehler  · 技术社区  · 15 年前

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

    在安装期间是否仍要配置新的ODBC连接?

    在一个相关的注释中,有没有一种方法可以捕获现有的ODBC连接,以便在这个理论过程中使用?

    3 回复  |  直到 14 年前
        1
  •  1
  •   Lance Rushing    15 年前

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

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

    基本上,将正确的值写入注册表:hkey_local_machine“software\odbc\odbc.ini\odbc data sources”

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

    你在用什么?什么样的数据库?

        2
  •  1
  •   Rap    15 年前

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

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

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

    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"
    

    当然,您使用的安装程序将确切地决定这些是如何创建的。

        3
  •  0
  •   Greg Buehler    15 年前

    回答我自己的问题…

    每个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)>"