2011-03-30 48 views
3

我用我的應用程序(控制面板 - > administrativetools - > ODBC - > DSN)ODBC連接到SQL Server 2008,和windows身份驗證 它可以完美運行在Windows XP上,ODBC連接字符串這麼想的工作在Windows上7

但現在我運行它在Windows7和SQL Server 2008與SQL服務器身份驗證。 當我做了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 ''.) 

它的一些東西錯了白衣DSN但我不知道它是什麼,

也許使DSN在Windows 7中不同?

非常感謝

我想多一點,我發現,也許我的密碼不保存爲我的用戶,當我作出這樣的DSN?

如何保存?

回答

2

是不是64位Win7和32位應用程序?

如果是這樣,您必須在32位Windows子系統中配置ODBC DSN。在64位版本的Windows中有2個版本的odbcad32.exe。在c:\windows\system32中,您會發現爲64位應用程序配置ODBC的64位,而在c:\windows\syswow64中,應該使用32位版本爲32位程序配置ODBC。

+0

感謝您的回覆。他們都沒有32位 – Mahsa 2011-03-30 06:48:56

0

我找到了

我讓我的DSN爲befor。但是當我想在我的應用程序中使用它(使用sql認證連接到sql server)時,我應該將(userid和密碼像下圖一樣)傳遞給它

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

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

0

我只是移植所用的經典之作VB6應用程序ado和一個DSN來獲取SQL數據到Win Server 2008 R2和Sql Server 2008 R2。當您遇到此問題時,請注意以下兩個鏈接。基本上你運行一個UDL測試,並掛載到安裝到操作系統的oledb驅動程序,並給你一個想法,如果你真的可以通過驅動程序到達db。關於它的美麗之處在於,您在這些鏈接中創建的「UDL」文件將爲您提供更新應用程序所需的確切連接字符串。您可以將該連接字符串替換爲您的舊連接字符串,並放棄在機器上設置新的DSN。

x64 UDL Test

x86 UDL Test

從我所看到的OLEDB驅動程序現在要求供應商,除了其他屬性在連接字符串中設置datacompatibilitylevel變量。

真的讓你欣賞sqlClient類。哈。