【问题标题】:How to identify 32 bit odbc when calling it from .net application in windows 7从 Windows 7 中的 .net 应用程序调用时如何识别 32 位 odbc
【发布时间】:2013-04-12 13:58:51
【问题描述】:

我在 vb.net 中有一个桌面应用程序,它在 Windows XP 中运行良好,但在 Windows 7 64 位上安装该应用程序后它无法运行。 32 位 ODBC 确实显示了 DB2 连接的驱动程序(版本 9.7),但 64 位 ODBC 版本没有显示它。我在 Windows XP 中使用 System DSN 连接到 DB2,并在 Windows 7 中也尝试过。

因此,我必须在代码本身中明确提供信息才能调用它的 32 buit 版本。需要帮忙。除了调用之外,如果应用程序中需要做一些更改,请告诉我。

阿舒!

【问题讨论】:

  • 这是否意味着我应该将应用程序上的平台更改为 x86 类型,然后尝试运行它。它会默认指向 32 位 ODBC 版本吗?因为 64 位版本的驱动似乎不可用。我还在某处读到,为了调用 32 位 ODBC,它应该如下所示... Dim sConStr as String sConStr = "DSN=MY400;UID=HARNER;PWD=SECRET;" Dim sConStr as String sConStr = "Driver=Client Access ODBC Driver (32-bit);" sConStr = sConStr & "System=192.168.1.25;UID=HARNER;PWD=SECRET;"

标签: windows odbc system bit dsn


【解决方案1】:

您不能在同一个进程中混合使用 32 位代码和 64 位代码。

如果您想使用 32 位 ODBC,您必须将您的进程标记为仅 x86。

【讨论】:

  • 没错。我可能会补充一点,可以针对同一个目标运行 32 位和 64 位驱动程序,但您必须添加两次;一个在 32 位驱动程序中,一个在 64 位驱动程序中。如果您在 32 位模式下运行一些应用程序,而在 64 位模式下运行一些应用程序,这将非常有用。
  • 这是否意味着我应该将应用程序上的平台更改为 x86 类型,然后尝试运行它。它会默认指向 32 位 ODBC 版本吗?因为64位版本的驱动好像不可用。
  • @Ashu:您的程序将始终使用与其运行时相同的 ODBC 位数
  • 是的@Ashu,如果你编译为 x86,应用程序应该尝试使用 32 位驱动程序。
  • 我将连接更改为使用 OLEDB 连接,并将连接字符串组织得很好。但由于某种原因,即使在 x86 编译上,我的代码也无法与 32 位 ODBC 连接
猜你喜欢
  • 1970-01-01
  • 2011-03-07
  • 2011-03-24
  • 2011-11-07
  • 2013-06-11
  • 1970-01-01
  • 1970-01-01
  • 2011-01-27
  • 1970-01-01
相关资源
最近更新 更多