我为我的应用程序使用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时,也许我的密码不能保存给我的用户?
如何保存?
答案 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。
从我所看到的oledb驱动程序现在需要在连接字符串中设置的提供程序和datacompatibilitylevel变量以及其他属性。
真的让你欣赏sqlClient类。哈