ODBC連接發生錯誤:未發現數據源名稱並且未指定默認驅動程序


程序在使用ODBC方式連接數據庫時發生錯誤:

ERROR [IM002] [Microsoft][ODBC 驅動程序管理器] 未發現數據源名稱並且未指定默認驅動程序。

什么原因造成的呢?

本人使用《Delphi+SQL Server數據庫應用實例完全解析》 附帶例程測試,發現不能連接數據庫。
提示通信模塊驅動問題。
環境:win7_x86 + SQL Server2000 + Delphi 7.
解決方法:

SQL Server 2000

1. 通過數據庫->所有任務->還原數據庫。
2. 安全性設置->登錄-> 設置默認數據為 xqwy。

ODBC
1. 打開控制面板-> ODBC 數據源管理器

2. 添加-> 選擇 SQL Server

3. Name: 數據庫名稱 Description: 數據庫描述  Server:計算機名稱

4. 下一步 保存  確定。

5. 測試: Delphi 7 創建ADOCon 控件,雙擊控件。

6.Use Connection String -> build

7. 連接: 使用數據源名稱:xqwy
             用戶名:sa

             密碼:sa

   測試連接->測試連接成功。

Delphi7   ADO 代碼:config.pas

 1 unit config;
 2 
 3 interface
 4 uses
 5  SysUtils,forms;
 6 type
 7   TXQWYConfig=class   //定義連接管理類
 8   public
 9      class function getConnectionStr:string;  //定義類的方法,得到連接字符串
10 end;
11 implementation
12 class function TXQWYConfig.getConnectionStr;
13 begin
14   //result:='Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=XQWY;Data Source=(local)';
15   result:='Provider=MSDASQL.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=XQWY;Data Source=xqwy';
16 end;
17 end.

 

================================  參考資料  ==================================

首先說明下程序的運行環境。操作系統是win8 64位的,.net 4.0的程序。

進展一,打開控制面板的“數據源”工具,在“驅動程序”中並未發現對應的驅動程序名稱,於是,下載安裝64位ODBC驅動程序,並根據驅動程序列表中的驅動名稱,修改了對應的odbc連接字符串。測試后依然提示以上錯誤。甚至根據高手指點,使用了64位系統專用的odbc連接字符串,依然錯誤。

進展二,突然想到會不會和.net程序有關?因為部分控件兼容性問題,程序雖然運行在64位操作系統下,但實際上是以32位方式運行。這個會不會是問題的根本呢?嘗試下載32位的odbc驅動,並安裝。測試連接,成功!

原因分析:結合之前看到的現象(win8 64位系統中的“設置odbc數據源”工具居然分為32位和64位兩個程序),猜想原因:win8 64位系統中的odbc驅動分為32位和64位分開管理,32位方式運行的程序只會調用32位的odbc驅動,同理,64位的程序只能調用64位的odbc驅動。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM