直播中
本文討論利用ASP存取DBF、DBC、MDB、Excel、SQL Server型數(shù)據(jù)的方法及函數(shù)實(shí)現(xiàn),最后給出一個(gè)利用本文提供的函數(shù)存取Excel型數(shù)據(jù)庫(kù)的例子,對(duì)企事業(yè)數(shù)據(jù)重用及共享具有很強(qiáng)的實(shí)際意義。
關(guān)鍵詞:
ASP數(shù)據(jù)庫(kù)存取 DBF DBC MDB Excel SQL Server
前言
在Internet/Intranet網(wǎng)頁(yè)上隨處可見(jiàn)留言板、討論組、網(wǎng)上投票、網(wǎng)上調(diào)查、聊天室等Internet功能模塊,這些程序都是利用ASP(Active Server Page)與數(shù)據(jù)庫(kù)技術(shù)結(jié)合而實(shí)現(xiàn)的。在Internet/Intranet上用的數(shù)據(jù)庫(kù)大都是mdb數(shù)據(jù)庫(kù)或SQL<數(shù)據(jù)庫(kù),但是在企事業(yè)Intranet<網(wǎng)中,各種版本的數(shù)據(jù)庫(kù)已存在如DBF<、DBC、Excel、文本數(shù)據(jù)庫(kù),這些數(shù)據(jù)庫(kù)是由應(yīng)用軟件如辦公自動(dòng)化系統(tǒng)、財(cái)務(wù)軟件等所生成,如果ASP能直接利用這些類(lèi)型數(shù)據(jù)庫(kù),就不需要重新建立數(shù)據(jù)庫(kù),進(jìn)一步實(shí)現(xiàn)企業(yè)數(shù)據(jù)共享,究竟這些數(shù)據(jù)庫(kù)能不能直接被ASP使用,筆者經(jīng)過(guò)長(zhǎng)期探討總結(jié)出給出肯定的答案。
一、ASP的對(duì)象存取數(shù)據(jù)庫(kù)方法
在A(yíng)SP中,用來(lái)存取數(shù)據(jù)庫(kù)的對(duì)象統(tǒng)稱(chēng)ADO(Active Data Objects),主要含有三種對(duì)象:Connection、Recordset 、Command,其中Connection負(fù)責(zé)打開(kāi)或連接數(shù)據(jù)庫(kù),Recordset負(fù)責(zé)存取數(shù)據(jù)表,Command負(fù)責(zé)對(duì)數(shù)據(jù)庫(kù)執(zhí)行行動(dòng)查詢(xún)(Action Query)命令和執(zhí)行SQL Server的Stored Procedure。只依靠這三個(gè)對(duì)象還是無(wú)法存取數(shù)據(jù)庫(kù)的,還必須具有數(shù)據(jù)庫(kù)存取的驅(qū)動(dòng)程序:OLE DB驅(qū)動(dòng)程序和ODBC驅(qū)動(dòng)程序。對(duì)于任何一種數(shù)據(jù)庫(kù)都必須有相對(duì)應(yīng)的OLE DB驅(qū)動(dòng)程序和ODBC驅(qū)動(dòng)程序,ADO<才能對(duì)數(shù)據(jù)庫(kù)進(jìn)行存取。存取過(guò)程可用下圖描述:
<IMG SRC="http://tech.china.com/zh_cn/netschool/homepage/asp/606/20010814/images/10079488_11428.gif" border=0>
由上圖可知,ADO對(duì)象必須與各種驅(qū)動(dòng)程序結(jié)合才能存取各種類(lèi)型數(shù)據(jù)庫(kù),不同的數(shù)據(jù)庫(kù)需要不同的驅(qū)動(dòng)程序。究竟機(jī)器上已安裝哪些驅(qū)動(dòng)程序呢?可通過(guò)如下的方法來(lái)驗(yàn)證:Windows9X或NT的“開(kāi)始”→“設(shè)置”→“控制面板”→“ODBC Data Source(32Bit)”中的“驅(qū)動(dòng)程序”標(biāo)簽頁(yè)查證我們的機(jī)器上究竟裝了哪些驅(qū)動(dòng)程序。大致有如下表所列的驅(qū)動(dòng)程序:
<驅(qū)動(dòng)程序 <適用數(shù)據(jù)庫(kù)類(lèi)型
Microsoft.Jet.OLEDB.4.0 Mdb
Microsoft Access Driver Access
Microsoft dBase Driver Dbase