【问题标题】:SQLConfigDataSource does not add System DSN for 64-bit driversSQLConfigDataSource 不为 64 位驱动程序添加系统 DSN
【发布时间】:2020-04-14 10:39:53
【问题描述】:

我从System32 加载了odbccp32.dll,甚至尝试从SysWow64 使用。我使用SQLConfigDataSource 函数为指定的驱动程序配置我的系统 DSN。此函数成功配置了 32 位驱动程序,但对 64 位驱动程序没有成功。这dll 是否仅适用于 32 位驱动程序?当我运行 ODBC 管理器工具(64 位)时,我能够看到 64 位驱动程序并将它们手动添加到系统 DSN,但我无法使用 DLL 执行此操作。

【问题讨论】:

    标签: c++ dll odbc 64-bit


    【解决方案1】:

    只有 64 位应用程序可以使用 SQLConfigDataSource 配置 64 位数据源。如果您的应用程序面向 32 位 Windows,它会在调用此函数时修改 32 位数据源。您需要以不同的方式配置数据源(从 64 位应用程序、从命令行、直接修改注册表等)

    【讨论】:

    • 我已经有 64 位的驱动程序版本,我只想将此 ODBC 驱动程序添加为 64 位,但我不能这样做。让我们能够将不同的 Windows odbc 驱动程序添加为 32 位,但不能添加 64 位驱动程序。看起来.dll 找不到它。还是您的意思是当我使用 64 位 odbc 驱动程序时,我无法配置任何 32 位。
    • @overkail:您的应用程序调用SQLConfigDataSource 32 位还是64 位?如果是 32 位,则只能配置 32 位数据源。
    • 我认为我使用 64 位 dll,因为我直接指向 C:\Windows\System32\odbccp32.dll。我的操作系统是 64 位的。
    • @overkail: 对,但是如果调用SQLConfigDataSource的编译应用程序是32位应用程序,它不能注册64位数据源。
    • 我明白了,但是除了编译将其调用为 64 位的应用程序之外,还有什么解决方法吗?这是用 InstallShield 6.x 编写的旧应用程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多