簡體   English   中英

可以使用相同的連接字符串連接到DAO中的數據源,但不能連接到ADO中的數據源

[英]Can connect to data source in DAO but not in ADO using the same connection string

我正在嘗試通過Access通過DAO / ADO在SQL Server后端上執行SQL Server存儲過程。

通過使用傳遞查詢以及到ODBC數據源的連接字符串,我可以使它在DAO中很好地工作。但是,當我嘗試在ADO Connection對象上使用相同的連接字符串時,我僅收到以下消息:

錯誤-2147467259:[Microsoft] [ODBC驅動程序管理器]數據源名稱未找到且未指定默認驅動程序(用於ODBC驅動程序的Microsoft OLE DB提供程序)

使用DAO的連接字符串是一個指向DSN文件的指針:“ ODBC; FILEDSN = RISCGen2.dsn”。

考慮到ADO可能無法消化這一點,我嘗試用DSN文件中的相關內容替換字符串,即:

“ODBC;DRIVER={ODBC Driver 11 for SQL Server};UID=my.loginid;PWD=mypassword;SERVER=WYNRISC08;Database=RISCGen2”.

但是,我仍然遇到相同的錯誤。

有人可以發現我在哪里出錯嗎? 提前致謝。

附錄

丹·古茲曼(Dan Guzman)回答了我提出的問題。 現在的問題已成為理解有關ADO的某些特定細節的問題之一。 我想我需要問另一個問題來解決它...新問題發布: 從VBA執行SQL存儲過程並檢索所有消息和結果集

ODBC; DRIVER = {用於SQL Server的ODBC驅動程序11}; UID = my.loginid; PWD = mypassword; SERVER = WYNRISC08;數據庫= RISCGen2

省略無關的ODBC規范:

DRIVER={ODBC Driver 11 for SQL Server};UID=my.loginid;PWD=mypassword;SERVER=WYNRISC08;Database=RISCGen2

請注意,經典ADO本身就是OLE DB,並且使用Microsoft OLE DB Provider for ODBC Drivers(MSDASQL)來使用ODBC驅動程序。 最好改用OLE DB提供程序。 您可以使用Windows附帶的舊版SQL Server OLE DB提供程序(SQLOLEDB),但在撰寫本文時,最好使用最新的MSOLEDBSQL驅動程序 的連接字符串為:

Provider=MSOLEDBSQL;UID=my.loginid;PWD=mypassword;SERVER=WYNRISC08;Database=RISCGen2

如果您使用較新的SQL數據類型,則可能需要指定DataTypeCompatibility=80 ,因為ADO classic是一種成熟的API,自SQL Server 2000以來未得到增強,並且不知道此后添加的數據類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM