丁香婷婷网,黄色av网站裸体无码www,亚洲午夜无码精品一级毛片,国产一区二区免费播放

現(xiàn)在位置:范文先生網(wǎng)>理工論文>計算機信息技術(shù)>Delphi 5 數(shù)據(jù)庫應用中ODBC數(shù)據(jù)源的自動管理

Delphi 5 數(shù)據(jù)庫應用中ODBC數(shù)據(jù)源的自動管理

時間:2023-02-21 00:08:59 計算機信息技術(shù) 我要投稿
  • 相關(guān)推薦

Delphi 5 數(shù)據(jù)庫應用中ODBC數(shù)據(jù)源的自動管理

                                  蔣冠雄  徐騁飛

                     (紹興文理學院實驗中心)

              

 

摘要:本文分析了ODBC數(shù)據(jù)源設(shè)置的原理以及ODBC數(shù)據(jù)源和Delphi數(shù)據(jù)庫別名的關(guān)系。并在此基礎(chǔ)上,介紹了在Delphi5數(shù)據(jù)庫應用程序安裝、運行中,如何編程實現(xiàn)ODBC數(shù)據(jù)源和Delphi數(shù)據(jù)庫別名的設(shè)置。

關(guān)鍵字:Delphi、數(shù)據(jù)庫、ODBC

 

一、前言

Delphi的特色之一就是方便而強大的開發(fā)數(shù)據(jù)庫的能力,只要輕擊幾下鼠標,填寫極少的幾行代碼,就能快速地開發(fā)出很有風格的數(shù)據(jù)庫應用程序。編寫一個數(shù)據(jù)應用可以很簡單,但要在別人的計算機上運行自己的應用卻要費一些周折。

首先,如果對方的計算機上還沒有安裝過Inprise公司的BDE數(shù)據(jù)庫引擎的話,那么就必須把BDE和應用程序一起安裝到對方的計算機中。其次,應用程序中用到的數(shù)據(jù)庫別名(Alias),特別是使用了ODBC數(shù)據(jù)源連接的數(shù)據(jù)庫別名必須和BDE一起設(shè)置。最后,如果應用程序使用的數(shù)據(jù)庫,其存放路徑并不是固定的,那么必須根據(jù)實際情況進行ODBC和Alias的調(diào)整。這些,當然可以在應用程序安裝后,利用控制面板中ODBC數(shù)據(jù)源管理和BDE隨帶的BDE Administrator通過手工設(shè)置。但如此一來,一方面會使應用程序大打折扣,另一方面不便于普通用戶自己的安裝和今后工作路徑的改動。

和Delphi一起發(fā)布的Install Shield Express可以大大簡化安裝程序的制作,幫助我們完成許多工作。本文將要介紹的,便是如何通過Install Shield和應用程序配合,完成安裝和運行時的ODBC數(shù)據(jù)源的自動設(shè)置。

 

二、原理

1、ODBC數(shù)據(jù)源

ODBC(Open DataBase Conectivity)是微軟公司制定的標準編程接口,只要有相應的ODBC驅(qū)動程序,就可以通過ODBC連結(jié)操作各種不同的數(shù)據(jù)庫。通常通過控制面板中的ODBC Data Source來配置ODBC的數(shù)據(jù)源。所謂ODBC數(shù)據(jù)源就是命名的一組信息,包括需要連結(jié)的數(shù)據(jù)庫所在位置(可以是磁盤目錄/文件,也可以是網(wǎng)絡(luò)服務(wù)器)、對應的ODBC驅(qū)動程序以及訪問數(shù)據(jù)庫所需的其他相關(guān)信息,用戶可以通過數(shù)據(jù)源的名稱(DSNs,Data Source Names)來指定所需的ODBC連接。

DSNs按照其保存方式和作用范圍分為三種:用戶DSN、系統(tǒng)DSN和文件DSN。每個文件DSN保存在單獨的一個文件中,文件可以在網(wǎng)絡(luò)范圍內(nèi)共享;用戶DSN保存在注冊表中,只對當前用戶可見;系統(tǒng)DSN頁保存在注冊表中,但對系統(tǒng)中的所有用戶可見。用戶DSN和系統(tǒng)DSN的區(qū)別在于,用戶DSN保存在注冊表的HKEY_CURRENT_USER下,而系統(tǒng)DSN保存在HKEY_LOCAL_MACHINE下。

下面,以系統(tǒng)DSN為例說明如何通過修改注冊表直接設(shè)置ODBC數(shù)據(jù)源。假定我們要連接的數(shù)據(jù)庫是Access97的c:\test\auto.mdb(注意:用較新的ADO連接Access數(shù)據(jù)庫效率更高,這里只是作為一個例子),數(shù)據(jù)源的名稱為CenterAuto,那么可以分為兩個步驟:

(1)注冊DSN本身的信息:

  • 在HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI下添加主鍵CenterAuto。主鍵的名稱CenterAuto就是數(shù)據(jù)源的名稱。
  • 向CenterAuto添加鍵值,關(guān)鍵的幾項是

 

 

 

鍵值名

鍵值類型

鍵值

含義

Driver

字符串(String)

C:\WINDOWS\SYSTEM\ODBCJT32.DLL

ODBC驅(qū)動程序DLL

DBQ

字符串(string)

c:\test\auto.mdb

連接的數(shù)據(jù)庫

DriverID

雙字(Dword)

19H(十六進制數(shù))

 

FIL

字符串(string)

MS Access;

 

  • 在CenterAuto下添加主鍵Engines
  • 在Engines下添加主鍵Jet
  • 在Jet下添加鍵值,要是一些配置信息,例如

ImplicitCommitSync、MaxBufferSize、PageTimeout、Threads。

關(guān)于不同的ODBC數(shù)據(jù)源的具體設(shè)置,可以查閱有關(guān)書籍,不過最簡單的方法是在控制面板中設(shè)置相應的數(shù)據(jù)源,然后用Regedit(98中)或Regedit32(NT中)察看一下注冊表。

2)登記數(shù)據(jù)源:在HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\ODBC Data Sources下添加鍵值名CenterAuto,類型為字符串,鍵值為“Microsoft Access Driver (*.mdb)”。其中鍵值名指出了DSN,必須和前面的對應起來;鍵值則指出了ODBC驅(qū)動程序的名稱,必須是已安裝了的。

2、BDE別名

Delphi 5.0通過BDE實現(xiàn)數(shù)據(jù)庫的操作。在連結(jié)數(shù)據(jù)庫時,可以直接指出數(shù)據(jù)庫的存放路徑,也可以通過指定別名實現(xiàn),但前者只能實現(xiàn)對文件型數(shù)據(jù)庫的連接,如果要連接服務(wù)器上的數(shù)據(jù)庫或ODBC數(shù)據(jù)源,則必須通過別名。

BDE的別名可以用隨帶的Database Desktop中Alias Manager進行管理,也可以在控制面板中用BDE Administrator管理,應用程序運行過程中還可以通過Session不可見控件實現(xiàn)動態(tài)管理。不過,對于ODBC數(shù)據(jù)源,一旦建立了用戶DSN或系統(tǒng)DSN,那么BDE就會自動建立一個別名,別名的名稱和DSN的名稱是一樣的。同樣的,如果你刪除了DSN,那么BDE就會刪除相應的別名。這就是說,在Delphi 5.0中操作ODBC數(shù)據(jù)源,只需要關(guān)心DSN的設(shè)置就可以了。

3、Install Shield

Delphi 5.0附帶的Install Shield不帶能夠完成BDE的安裝工作,而且完全支持安裝程序?qū)ψ员淼男薷,只要簡單地在Make Registry Changes選項下,輸入需要添加的注冊表項目,就可以實現(xiàn)在應用程序安裝時修改注冊表的目的。結(jié)合前面介紹的ODBC數(shù)據(jù)源的設(shè)置原理,利用這個功能,就可以方便地實現(xiàn)在安裝時進行DSN的初始設(shè)置。

4、Delphi 5.0的注冊表控件

Delphi的TRegistry提供了操作Windows注冊表的界面,可以在程序中讀寫注冊表中的數(shù)據(jù)。如果不使用InstallShield,通過TRegistry也可以完成DSN的初始設(shè)置。本文僅介紹利用TRegistry實現(xiàn)對DSN的修改,而不介紹DSN的完整設(shè)置,但根據(jù)上述原理和下面的程序代碼,要做到這一點不會有任何問題。

 


【Delphi 5 數(shù)據(jù)庫應用中ODBC數(shù)據(jù)源的自動管理】相關(guān)文章:

在Delphi中巧用Windows 的API函數(shù)08-06

PLC在自動磨花機中的應用08-06

人本管理在科學管理中的應用08-05

人本管理在科學管理中的應用08-07

Delphi拖放編程08-06

任務(wù)驅(qū)動教學法在數(shù)據(jù)庫教學中的應用08-27

Delphi 中動態(tài)鏈接庫(DLL)的建立和使用08-06

水噴霧自動消防系統(tǒng)在小區(qū)供氣中的應用08-06

水噴霧自動消防系統(tǒng)在小區(qū)供氣中的應用08-06