首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

VS2005 使用 ADO 連接 SQL Server 崩潰問題:連接字串配置錯誤排查

     編輯:程式設計綜合問答

在 VS2005 中使用 ADO (msado15.dll) 操作 SQL Server 時,Recordset::Open 調用 raw_Open 返回 E_FAIL 導致崩潰,多半是連接字串 (ConnectionString) 格式或驅動程式不匹配造成。

常見錯誤原因

  • 使用了錯誤的 Provider(如 SQLOLEDB vs SQLNCLI)。
  • 連接字串中伺服器名稱、埠號、認證方式(Windows 驗證 vs SQL Server 驗證)錯誤。
  • 缺少必要的網絡庫配置(如 `Network Library=dbmssocn` 強制 TCP/IP)。
  • SQL Server 遠程連接未啟用、防火牆攔截、Browser 服務未啟動(命名實例需用)。

標準連接字串範本

SQL Server 驗證模式:

Provider=SQLOLEDB.1;Data Source=192.168.1.92,2433;Initial Catalog=YourDB;User ID=sa;Password=yourpwd;

Windows 整合驗證模式:

Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Data Source=ServerName\Instance;Initial Catalog=YourDB;

排查步驟

  1. 在同一台機器上用 SSMS 或 UDL 文件測試連接字串是否通順。
  2. 確認 SQL Server 設定:啟用 TCP/IP 協議、固定埠號(預設 1433)、允許遠程連接、SQL Server Browser 服務運行中。
  3. 代碼中捕獲 _com_error 並輸出 ErrorMessage(),具體錯誤描述比 `E_FAIL` 更有指導意義。
  4. 若使用命名實例,連接字串建議使用 `ServerName\Instance` 而非 IP+埠,或確保 Browser 服務可達。

修正連接字串後,Open 應返回 S_OK,崩潰問題即可解決。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved