時間:2021-09-09 00:42:57 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
ODBC管理器(Administrator)它負責安裝驅(qū)動程序,管理數(shù)據(jù)源,并幫助程序員跟蹤ODBC的函數(shù)調(diào)用。在ODBC中,應用程序不能直接存取數(shù)據(jù)庫,它必須通過管理器和數(shù)據(jù)庫交換信息。ODBC管理器負責將應用程序的SQL語句及其他信息傳遞給驅(qū)動程序,而驅(qū)動程序則負責將運行結果送回應用程序。運行32bit ODBC管理器后,出現(xiàn)一個主對話框,它的主要內(nèi)容是要求用戶輸入一個數(shù)據(jù)源,所謂數(shù)據(jù)源就是數(shù)據(jù)庫位置、數(shù)據(jù)庫類型以及ODBC驅(qū)動程序等信息的集成。數(shù)據(jù)源負責將運行結果送回應用程序。應用程序、ODBC管理在使用之前必須通過ODBC管理器進行登記和連接,啟動ODBC管理器后,選取Add按鈕,根據(jù)自己的數(shù)據(jù)庫類型,選擇相應的ODBC驅(qū)動程序,然后輸入數(shù)據(jù)源名(Data Source Name)和數(shù)據(jù)庫文件名(Database Name),完成這些步驟后,以后的應用程序就能夠通過ODBC管理器的數(shù)據(jù)源直接操縱數(shù)據(jù)庫。
在Window95或者98下,ODBC管理器在控制面板里面的32bit ODBC。而在WINDOW2000下,ODBC管理器是在程序管理工具à數(shù)據(jù)源(ODBC)中。
下面以Window2000下的ODBC管理器為例,介紹一下每一頁的用途:
1、 用戶DSN:ODBC用戶數(shù)據(jù)源存貯了如何與指定數(shù)據(jù)庫提供者連接的信息。只對當前用戶可見,而且只能用于當前機器上。這里的當前機器是只這個配置只對當前的機器有效,而不是說只能配置本機上的數(shù)據(jù)庫。它可以配置局域網(wǎng)中另一臺機器上的數(shù)據(jù)庫的。
2、 系統(tǒng)DSN: ODBC系統(tǒng)數(shù)據(jù)源存貯了如何指定數(shù)據(jù)庫提供者連接的信息。系統(tǒng)數(shù)據(jù)源對當前機器上的所有用戶都是可見的,包括NT服務。也就是說在這里配置的數(shù)據(jù)源,只要是這臺機器的用戶都可以訪問。
3、 文件DSN:ODBC文件數(shù)據(jù)源允許用戶連接數(shù)據(jù)提供者。文件DSN可以由安裝了相同驅(qū)動程序的用戶共享。這是界于用戶DSN和系統(tǒng)DSN之間的一種共享情況。
4、 驅(qū)動程序:這頁列出了本機上所有安裝的數(shù)據(jù)庫驅(qū)動程序。里面列舉了每個驅(qū)動程序的名稱,版本,提供商公司,驅(qū)動程序文件名,以及安裝日期。
5、 跟蹤:ODBC跟蹤允許創(chuàng)建調(diào)用ODBC的日志,提供給技術人員查看。里面可設定日志的路徑和文件名。技術人員通過這里面的信息可以看到本機上所有的數(shù)據(jù)庫訪問的時間,用戶,以及出錯信息等情況。也可以通過這個輔助調(diào)試應用程序,可以啟動Visual Studio的分析器,來進行ODBC的跟蹤。
6、 連接池:連接池允許應用程序重用原來打開的的連接句柄,這樣可以節(jié)省到服務器的往返過程。
7、 關于:最后這一頁列出了所有的ODBC的核心文件。
這里,我們以常用的Access數(shù)據(jù)庫為例子,來說明創(chuàng)建一個用戶數(shù)據(jù)源的過程。
ODBC和JDBC
ODBC(Open Database Connectivity)是一組對數(shù)據(jù)庫訪問的標準API,其最大的優(yōu)點是以統(tǒng)一的方式處理所有的數(shù)據(jù)庫。
JDBC(Java Database Connectivity)是Java與數(shù)據(jù)庫的接口規(guī)范,允許Java程序發(fā)送SQL指令并處理結果。比較常見JdbcTemplate
一、手工配置
1.ODBC數(shù)據(jù)源管理器
在進行數(shù)據(jù)庫開發(fā)時,為了達到配置ODBC,進行DSN定義注冊的目的,微軟給出了一個手工操作的解決方法。在Windows 9X操作系統(tǒng)的控制面板中,有一個名為"ODBC數(shù)據(jù)源(32位)"的圖標,可以通過它激活專門為用戶設置ODBC環(huán)境的程序(ODBC Data Source Administrator,ODBC數(shù)據(jù)源管理器)。在Windows 2000操作系統(tǒng)中,上述圖標被放置在控制面板的"管理工具"里面。
這個用于設置ODBC環(huán)境的程序叫做桌面驅(qū)動程序,它支持數(shù)種DBMS(Database Management System,數(shù)據(jù)庫管理系統(tǒng))。當用戶想增加一個數(shù)據(jù)源和一個所需要的驅(qū)動程序時,可以通過ODBC數(shù)據(jù)源管理器的配置對話框配置特定類型的數(shù)據(jù)庫。大多數(shù)情況下,在編寫對數(shù)據(jù)庫操作的程序時,我們至少需要知道諸如數(shù)據(jù)庫文件名、系統(tǒng)(本地或遠程)、文件夾等信息,同時要給數(shù)據(jù)源命名。
2.定義數(shù)據(jù)源的類型
用戶可以定義以下三種類型的數(shù)據(jù)源:
●用戶數(shù)據(jù)源:作為位于計算機本地的用戶數(shù)據(jù)源而創(chuàng)建的,并且只能被創(chuàng)建這個數(shù)據(jù)源的用戶所使用;
●系統(tǒng)數(shù)據(jù)源:作為屬于計算機或系統(tǒng)而不是特定用戶的系統(tǒng)數(shù)據(jù)源而創(chuàng)建的,用戶必須有訪問權才能使用;
●文件數(shù)據(jù)源:指定到文件中作為文件數(shù)據(jù)源而定義的,任何已經(jīng)正確地安裝了驅(qū)動程序的用戶皆可以使用這種數(shù)據(jù)源。
3.數(shù)據(jù)源注冊的步驟
以Microsoft Access為例,如果在C:\myfile\文件夾里創(chuàng)建了一個名為myexample.mdb的數(shù)據(jù)庫文件,其注冊步驟如下:
●在控制面板里找到"ODBC數(shù)據(jù)源"圖標,打開數(shù)據(jù)源管理器的交互界面;
●筆者創(chuàng)建的數(shù)據(jù)庫文件是供本機上的用戶使用的,所以這里選擇"用戶 DSN";
●然后按下"添加"按鈕,在彈出的數(shù)據(jù)源管理器對話框里,為自己所要創(chuàng)建的數(shù)據(jù)源選擇一個驅(qū)動程序,本文的數(shù)據(jù)庫文件是用Microsoft Access創(chuàng)建的,所以要選擇"Microsoft Access Driver (*.mdb)";
●按"完成"按鈕后,進入一個標題為"ODBC Microsoft Access 安裝"的界面,在其中設置"數(shù)據(jù)源名"為"mydatasource",選取數(shù)據(jù)庫文件 "C:\myfile\myexample.mdb",然后確定即可。
這樣我們就完成了一個簡單的ODBC數(shù)據(jù)源的注冊。當然,在以上的步驟中,用戶可以根據(jù)自己的不同需要,設置不同的選項。
注冊結束后,我們便可以在對數(shù)據(jù)庫的編程中,操作該數(shù)據(jù)庫了。
二、在VB中注冊數(shù)據(jù)源
在VB中對數(shù)據(jù)庫進行編程時,可以利用RegisterDataSource方法為ODBC數(shù)據(jù)源輸入連接信息到 Windows 注冊表中。它的語法是:
RegisterDataSource DSN, driver, silent, attributes
其中參數(shù)代表的含義分別為:
●DSN:字符串表達式,它是在引用數(shù)據(jù)源描述信息塊時所使用的名字。例如,如果數(shù)據(jù)源是一個ODBC遠程數(shù)據(jù)庫,這就是服務器的名字;如果是用戶DSN,則是注冊的數(shù)據(jù)源的名字。
●drive:字符串表達式,表示ODBC驅(qū)動程序的名稱。它并不是 ODBC 驅(qū)動程序動態(tài)連接庫 (DLL) 文件名。例如,SQL Server 是驅(qū)動程序名,而 SQLSRVR.DLL 是 DLL 文件名。必須安裝ODBC 及相應的驅(qū)動程序。
●silent:布爾類型值,如果不想顯示 ODBC 驅(qū)動程序?qū)υ捒?,用以提示指定?qū)動程序的信息,該值就為 True;如果希望顯示 ODBC 驅(qū)動程序?qū)υ捒?,該值就?False。如果 silent 為 True,那么attributes必須包含所有必需的指定驅(qū)動程序的信息。
●attributes:字符串表達式,它是一個要添加到 ODBC.INI 文件中的關鍵字列表。編寫程序時,可以根據(jù)需要選擇若干attributes的參數(shù)進行設置。
例如:我們可以編寫如下的VB程序,達到與上面手工注冊一樣的目的。程序清單如下:
Sub RegisterDataSource()
Dim strAttribs As String
’建造關鍵字字符串。
’C:\myfile\myexample.l.mdb數(shù)據(jù)庫文件名(包含路徑)
strAttribs ="DBQ=" _
& "C:\myfile\myexample.mdb" _
& Chr$(13) & "OemToAnsi=No" _
& Chr$(13) & "SERVER=SEQUEL" _
& Chr$(13) & "Network=DBNMPNTW" _
& Chr$(13) & "Database=WorkDB"_
& Chr$(13) &"Address=\\SEQUEL\PIPE\SQL\QUERY"
’建立新的注冊的 DSN。
rdoEngine.rdoRegisterDataSource "mydatasource",
"Microsoft Access Driver (*.mdb)", True,
strAttribs
End Sub
Private Sub Form_Load()
Call rdoRegisterDataSource
End Sub
注意:為了在代碼中使用rdoEngine和遠程數(shù)據(jù)對象,必須先在"引用"對話框中設置一個到 Microsoft Remote Data Object 2.0 對象庫的引用,否則在第一次引用rdoEngine 對象時會導致編譯錯誤。
三、利用注冊表合并
1.解決思路
考查ODBC數(shù)據(jù)源注冊后對Windows注冊表的修改情況,我們可以發(fā)現(xiàn)所注冊的數(shù)據(jù)源對Windows注冊表的影響關鍵集中在[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI]里。
這樣,我們導出[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI],每次以之為模板,把所要注冊的數(shù)據(jù)源信息加入到注冊表導出文件的對應位置,然后再將該文件與系統(tǒng)注冊表合并即可。
2.具體操作
首先,我們要弄清楚Regedit 及其參數(shù)的含義。Regedit是打開系統(tǒng)注冊表的命令。在"開始\運行\(zhòng)"中輸入即可。它的三個參數(shù)含義如下:
●Regedit /e myfile.reg :表示把注冊表文件導出到myfile.reg 文件中,相當于復制整個注冊表文件到myfile.reg中;
●Regedit /c myfile.reg:表示把myfile.reg導入注冊表,相當于用該文件的內(nèi)容覆蓋了注冊表的內(nèi)容;
●Regedit /s myfile.reg :表示把myfile.reg文件的內(nèi)容與注冊表文件的內(nèi)容進行合并。
我們只需在注冊表中將有用的部分導出,而后將所要注冊的數(shù)據(jù)源的信息加入,再與系統(tǒng)注冊表合并就可以了。這個合并的過程,我們既可以手工輸入來實現(xiàn),也可以通過編程實現(xiàn)自動合并。
注意:為了防止誤操作,一定要將系統(tǒng)注冊表作一次備份。
小 結
從安全的角度考慮,筆者首推利用在Windows控制面板中的ODBC數(shù)據(jù)源管理工具來進行數(shù)據(jù)源注冊,以免因?qū)ψ员淼牟皇旎蚴韬鲈斐刹槐匾膿p失。
MySQL 數(shù)據(jù)源配置
第一步:雙擊ODBC 數(shù)據(jù)源(64 位),可以選擇用戶DSN(系統(tǒng)只對當前用戶生效),也可以選擇系統(tǒng)DSN(能登錄當前系統(tǒng)的用戶都生效)
第二步:點擊添加,選擇事先安裝好的MySQL ODBC xx Driver 驅(qū)動后點擊完成。注意不同版本之間對某些sql語法的支持略有不同(之前吃過這個虧,我的環(huán)境有問題,客戶環(huán)境沒問題)。
第三步:完善基本鏈接信息后點擊Test,提示鏈接成功后點擊OK完成配置。
SQLServer 數(shù)據(jù)源配置
配置步驟
第一步:雙擊ODBC 數(shù)據(jù)源(64 位),可以選擇用戶DSN(系統(tǒng)只對當前用戶生效),也可以選擇系統(tǒng)DSN(能登錄當前系統(tǒng)的用戶都生效)
第二步:點擊添加,選擇SQL Server。這一項我ITDragon 并沒有手動安裝,應該是安裝SQL Server數(shù)據(jù)庫的時候自動安裝上去的。
第三步:鍵盤輸入需要連接的SQLServer服務器,如果是本機,就輸入計算機名。如果是遠程主機就需要輸入IP,Port 。不要點擊下拉框,會卡死。
第四步:選擇SQL Server驗證方式
第五步:選擇默認數(shù)據(jù)庫,也可以在寫sql語句時將表名的全路徑寫全(我ITDragon 習慣用寫全)
第六步:可以考慮修改SQL Server的系統(tǒng)消息語言,數(shù)據(jù)的加密,執(zhí)行字符數(shù)據(jù)翻譯,修改日志保存路徑等。也可以默認。
第七步:點擊完成,彈出“按照以下配置創(chuàng)建新的ODBC數(shù)據(jù)源”,點擊測試數(shù)據(jù)源,提示測試成功。點擊確定完成創(chuàng)建。
關鍵詞標簽:數(shù)據(jù)庫管理,ODBC
相關閱讀 Linux上配置Unix ODBC連接Oracle數(shù)據(jù)庫 講解數(shù)據(jù)庫管理系統(tǒng)必須提供的基本服務 通過ODBC來連接Oracle 數(shù)據(jù)庫 深入了解SQL Server 2008 商業(yè)智能平臺 剖析SQL Server 事務日志的收縮和截斷 MS SQL數(shù)據(jù)庫置疑解決辦法
熱門文章 淺談JSP JDBC來連接SQL Server 2005的方法 SqlServer2005對現(xiàn)有數(shù)據(jù)進行分區(qū)具體步驟 sql server系統(tǒng)表損壞的解決方法 MS-SQL2005服務器登錄名、角色、數(shù)據(jù)庫用戶、角色、架構的關系
時間:2022-01-25 19:53:19
時間:2021-08-04 10:33:59
時間:2021-03-24 12:07:02
時間:2021-03-24 11:26:55
時間:2019-08-20 18:42:28
時間:2019-05-22 15:16:22
人氣排行 配置和注冊ODBC數(shù)據(jù)源-odbc數(shù)據(jù)源配置教程 如何遠程備份(還原)SQL2000數(shù)據(jù)庫 SQL2000數(shù)據(jù)庫遠程導入(導出)數(shù)據(jù) SQL2000和SQL2005數(shù)據(jù)庫服務端口查看或修改 修改Sql Server唯一約束教程 SQL Server 2005降級到2000的正確操作步驟 sql server系統(tǒng)表損壞的解決方法 淺談JSP JDBC來連接SQL Server 2005的方法