odbc连接字符串不适用于Windows 7

时间:2011-03-30 06:27:49

标签: vb.net odbc connection-string

我为我的应用程序使用ODBC连接(controlpanel - > administrativetools - > odbc - > DSN)到sql server 2008,以及windows身份验证 它在windows xp上运行完美,

但现在我在带有sql server身份验证的windows7和sql server 2008上运行它。 当我制作DSN并查询连接时,我收到了此消息(测试成功完成!)

但是当我运行应用程序时出现了这个错误

(ERROR [28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user ''. ERROR [28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user ''.)

有些东西错了,但是我不知道它是什么,

也许在Windows 7中使DSN不同????

非常感谢

我想多一点,我发现当我制作DSN时,也许我的密码不能保存给我的用户?

如何保存?

4 个答案:

答案 0 :(得分:2)

不是64位Win7和32位应用程序吗?

如果是这样,您必须在32位Windows子系统中配置ODBC DSN。 64位版本的Windows中有odbcad32.exe的2个版本。在c:\windows\system32中,您将找到为64位应用程序配置ODBC的64位,在c:\windows\syswow64中,您应该使用32位版本为32位程序配置ODBC。

答案 1 :(得分:0)

我发现了

我将DSN作为原因。但是当我想在我的应用程序中使用它(使用sql身份验证连接到sql server)时,我应该将(userid和密码传递给它,如下所述)

Dim con As New Odbc.OdbcConnection(“dsn = dsnName; UID = sa; PWD = 123”)

答案 2 :(得分:0)

通常SQLConnect()进行ODBC连接需要连接字符串,用户名和密码。管理面板中的用户名和密码仅用于连接测试,每个应用程序都应提供用户名和密码。在某些环境中,用户名和密码位于连接字符串中。例如,我使用Python odbc模块,其中使用一个参数进行连接:http://docs.activestate.com/activepython/2.6/pywin32/odbc__odbc_meth.html

conn = odbc.odbc('dsn_alias/user/password')

您可以在此处找到有关SQL Server 2008连接字符串的更多信息:http://connectionstrings.com/sql-server-2008

答案 3 :(得分:0)

我刚刚移植了一个使用经典ado和DSN的vb6应用程序来获取到Win Server 2008 R2和Sql Server 2008 R2的sql数据。下面列出了两个可以解决此问题的链接。基本上你运行UDL测试并挂钩安装到操作系统的oledb驱动程序,并告诉你是否真的可以通过驱动程序访问数据库。关于它的美妙部分是您在这些链接中创建的“UDL”文件将包含更新应用程序所需的确切连接字符串。您可以复制该连接字符串来代替旧连接字符串,并放弃在计算机上设置新的DSN。

x64 UDL Test

x86 UDL Test

从我所看到的oledb驱动程序现在需要在连接字符串中设置的提供程序和datacompatibilitylevel变量以及其他属性。

真的让你欣赏sqlClient类。哈