熱點推薦:
您现在的位置: 電腦知識網 >> 電腦常識 >> 正文

幾種注冊ODBC數據源的方法

2013-11-11 14:05:38  來源: 電腦常識 

  一手工配置
    .ODBC數據源管理器
    在進行數據庫開發時為了達到配置ODBC進行DSN定義注冊的目的微軟給出了一個手工操作的解決方法在Windows X操作系統的控制面板中有一個名為ODBC數據源(位)的圖標可以通過它激活專門為用戶設置ODBC環境的程序(ODBC Data Source AdministratorODBC數據源管理器)在Windows 操作系統中上述圖標被放置在控制面板的管理工具裡面
    這個用於設置ODBC環境的程序叫做桌面驅動程序它支持數種DBMS(Database Management System數據庫管理系統)當用戶想增加一個數據源和一個所需要的驅動程序時可以通過ODBC數據源管理器的配置對話框配置特定類型的數據庫大多數情況下在編寫對數據庫操作的程序時我們至少需要知道諸如數據庫文件名系統(本地或遠程)文件夾等信息同時要給數據源命名
    .定義數據源的類型
    用戶可以定義以下三種類型的數據源
    ●用戶數據源作為位於計算機本地的用戶數據源而創建的並且只能被創建這個數據源的用戶所使用
    ●系統數據源作為屬於計算機或系統而不是特定用戶的系統數據源而創建的用戶必須有訪問權才能使用
    ●文件數據源指定到文件中作為文件數據源而定義的任何已經正確地安裝了驅動程序的用戶皆可以使用這種數據源
    .數據源注冊的步驟
    以Microsoft Access為例如果在C:\myfile\文件夾裡創建了一個名為myexamplemdb的數據庫文件其注冊步驟如下
    ●在控制面板裡找到ODBC數據源圖標打開數據源管理器的交互界面
    ●筆者創建的數據庫文件是供本機上的用戶使用的所以這裡選擇用戶 DSN
    ●然後按下添加按鈕在彈出的數據源管理器對話框裡為自己所要創建的數據源選擇一個驅動程序本文的數據庫文件是用Microsoft Access創建的所以要選擇Microsoft Access Driver (*mdb)
    ●按完成按鈕後進入一個標題為ODBC Microsoft Access 安裝的界面在其中設置數據源名mydatasource選取數據庫文件 C:\myfile\myexamplemdb然後確定即可
    這樣我們就完成了一個簡單的ODBC數據源的注冊當然在以上的步驟中用戶可以根據自己的不同需要設置不同的選項
    注冊結束後我們便可以在對數據庫的編程中操作該數據庫了
    二在VB中注冊數據源
    在VB中對數據庫進行編程時可以利用RegisterDataSource方法為ODBC數據源輸入連接信息到 Windows 注冊表中它的語法是
    RegisterDataSource DSN driver silent attributes
    其中參數代表的含義分別為
    ●DSN字符串表達式它是在引用數據源描述信息塊時所使用的名字例如如果數據源是一個ODBC遠程數據庫這就是服務器的名字如果是用戶DSN則是注冊的數據源的名字
    ●drive字符串表達式表示ODBC驅動程序的名稱它並不是 ODBC 驅動程序動態連接庫 (DLL) 文件名例如SQL Server 是驅動程序名而 SQLSRVRDLL 是 DLL 文件名必須安裝ODBC 及相應的驅動程序
    ●silent布爾類型值如果不想顯示 ODBC 驅動程序對話框用以提示指定驅動程序的信息該值就為 True如果希望顯示 ODBC 驅動程序對話框該值就為 False如果 silent 為 True那麼attributes必須包含所有必需的指定驅動程序的信息
    ●attributes字符串表達式它是一個要添加到 ODBCINI 文件中的關鍵字列表編寫程序時可以根據需要選擇若干attributes的參數進行設置
    例如我們可以編寫如下的VB程序達到與上面手工注冊一樣的目的程序清單如下
    Sub RegisterDataSource()
    Dim strAttribs As String
    建造關鍵字字符串
    C:\myfile\myexamplelmdb數據庫文件名(包含路徑)
    strAttribs =DBQ= _
    & C:\myfile\myexamplemdb _
    & Chr$() & OemToAnsi=No _
    & Chr$() & SERVER=SEQUEL _
    & Chr$() & Network=DBNMPNTW _
    & Chr$() & Database=WorkDB_
    & Chr$() &Address=\\SEQUEL\PIPE\SQL\QUERY
    建立新的注冊的 DSN
    rdoEnginerdoRegisterDataSource mydatasource
    Microsoft Access Driver (*mdb) True
    strAttribs
    End Sub
    Private Sub Form_Load()
    Call rdoRegisterDataSource
    End Sub
    注意為了在代碼中使用rdoEngine和遠程數據對象必須先在引用對話框中設置一個到 Microsoft Remote Data Object 對象庫的引用否則在第一次引用rdoEngine 對象時會導致編譯錯誤
    三利用注冊表合並
    .解決思路
    考查ODBC數據源注冊後對Windows注冊表的修改情況我們可以發現所注冊的數據源對Windows注冊表的影響關鍵集中在[HKEY_CURRENT_USER\Software\ODBC\ODBCINI]裡
    這樣我們導出[HKEY_CURRENT_USER\Software\ODBC\ODBCINI]每次以之為模板把所要注冊的數據源信息加入到注冊表導出文件的對應位置然後再將該文件與系統注冊表合並即可
    .具體操作
    首先我們要弄清楚Regedit 及其參數的含義Regedit是打開系統注冊表的命令開始\運行\中輸入即可它的三個參數含義如下
    ●Regedit /e myfilereg 表示把注冊表文件導出到myfilereg 文件中相當於復制整個注冊表文件到myfilereg中
    ●Regedit /c myfilereg表示把myfilereg導入注冊表相當於用該文件的內容覆蓋了注冊表的內容
    ●Regedit /s myfilereg 表示把myfilereg文件的內容與注冊表文件的內容進行合並
    我們只需在注冊表中將有用的部分導出而後將所要注冊的數據源的信息加入再與系統注冊表合並就可以了這個合並的過程我們既可以手工輸入來實現也可以通過編程實現自動合並
    注意為了防止誤操作一定要將系統注冊表作一次備份
    小 結
    從安全的角度考慮筆者首推利用在Windows控制面板中的ODBC數據源管理工具來進行數據源注冊以免因對注冊表的不熟或疏忽造成不必要的損失當然還有一些應用工具可以實現對ODBC數據源的注冊用戶可以根據不同的需求選擇使用

From:http://tw.wingwit.com/Article/Common/201311/5105.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.