網(wǎng)頁(yè)三劍客以其簡(jiǎn)單易學(xué)迅速被廣大愛(ài)好者所青睞,尤其是DW已成為初學(xué)者制作網(wǎng)站的首選工具。但我們?cè)谟肈W制作ASP access程序時(shí),經(jīng)常會(huì)出現(xiàn)這樣或那樣的錯(cuò)誤,尤其是數(shù)據(jù)庫(kù)方面顯得非凡突出。本文就此方面出現(xiàn)的一些常見的問(wèn)題談?wù)勂湓蚣敖鉀Q辦法。
一、上傳網(wǎng)頁(yè)時(shí)出現(xiàn)如下錯(cuò)誤:Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC 驅(qū)動(dòng)程序治理器] 未發(fā)現(xiàn)數(shù)據(jù)源名稱并且未指定默認(rèn)驅(qū)動(dòng)程序
此類錯(cuò)誤出現(xiàn)的情況大多是在用DW建立站點(diǎn)時(shí)運(yùn)行到下面的步驟時(shí)我們選擇了第一項(xiàng)或第二項(xiàng),如圖一:

圖一
1、當(dāng)選擇了第一項(xiàng)時(shí),我們開發(fā)的ASP程序是在本地編輯和測(cè)試。在應(yīng)用數(shù)據(jù)庫(kù)時(shí)建立數(shù)據(jù)庫(kù)連接大多采用的是DSN或自定義連接字符串
用DSN時(shí)如圖二所示:

圖二
DSN是用ODBC數(shù)據(jù)源治理器建立。我們知道DSN有用戶DSN、系統(tǒng)DSN、文件DSN三種,其中用戶DSN與系統(tǒng)DSN只能用于當(dāng)前機(jī)器,不能為別的機(jī)器所用。而在用DW建立ASP程序時(shí)在上圖的第二項(xiàng)只能顯示系統(tǒng)DSN,因此當(dāng)我們將ASP程序上傳或到別的機(jī)器運(yùn)行時(shí)便會(huì)出現(xiàn)上述問(wèn)題。
用自定義連接字符串時(shí)如圖三所示:

圖三
連接字符串包含 Web 應(yīng)用程序連接到數(shù)據(jù)庫(kù)所需的全部信息。
Driver 指定在沒(méi)有為數(shù)據(jù)庫(kù)指定 OLE DB 提供程序時(shí)所使用的 ODBC 驅(qū)動(dòng)程序。
DBQ 是指向基于文件的數(shù)據(jù)庫(kù)(如在 Microsoft Access 中創(chuàng)建的數(shù)據(jù)庫(kù))的路徑。該路徑是在測(cè)試數(shù)據(jù)庫(kù)文件的服務(wù)器上的路徑。
下面是一個(gè)連接字符串示例,它將創(chuàng)建與名為book.mdb 的 Access 數(shù)據(jù)庫(kù)的 ODBC 連接:Driver={Microsoft Access Driver (*.mdb)};DBQ=d:/book/trees.mdb。Dreamweaver 在服務(wù)器端腳本中插入該字符串,以便應(yīng)用程序服務(wù)器隨后進(jìn)行處理。當(dāng)我們將ASP程序上傳或到別的機(jī)器運(yùn)行時(shí)假如測(cè)試的路徑與連接字符串的數(shù)據(jù)庫(kù)路徑不一致時(shí),便會(huì)發(fā)生上述問(wèn)題。
2 當(dāng)選擇了第二項(xiàng)時(shí),我們開發(fā)的ASP程序是在本地編輯,然后上傳到遠(yuǎn)程服務(wù)器測(cè)試。建立數(shù)據(jù)庫(kù)連接也采用的是DSN或自定義連接字符串,不同的是都采用的測(cè)試服務(wù)器上的DSN或連接字符串。當(dāng)采用測(cè)試服務(wù)器上的DSN時(shí)同樣也只能用系統(tǒng)DSN于是當(dāng)?shù)絼e和機(jī)器運(yùn)行ASP程序時(shí),也就產(chǎn)生了同樣的問(wèn)題。當(dāng)采用自定義字符串時(shí)假如測(cè)試的路徑與連接字符串的數(shù)據(jù)庫(kù)路徑不一致時(shí),也會(huì)發(fā)生同樣的問(wèn)題。
從以上分析可知,要使自己用DW開發(fā)的ASP程序具有可移植性最好采用自定義字符串(也可采用文件DSN但對(duì)于初學(xué)者用自定義字符串輕易些)。其具體情況如下:
對(duì)于建立站點(diǎn)時(shí)選擇在本地編輯與測(cè)試,可采用此自定義連接字符串: Driver={Microsoft Access Driver (*.mdb)};DBQ=d:/book/trees.mdb(d:/book表示數(shù)據(jù)庫(kù)文件的實(shí)際路徑);D而對(duì)于在本地編輯然后上傳到遠(yuǎn)程服務(wù)器測(cè)試,若要將非 DSN 連接字符串寫入位于遠(yuǎn)程服務(wù)器,必須知道該文件的實(shí)際路徑.假如不知道文件在遠(yuǎn)程服務(wù)器上的實(shí)際路徑,則可以通過(guò)在連接字符串中使用 MapPath 方法來(lái)獲取該路徑。其自定義連接字符串為: 假如使用 VBScript 作為腳本撰寫語(yǔ)言,連接字符串可表示如下:Driver={Microsoft Access Driver (*.mdb)};DBQ=” & Server.MapPath("/book/book.mdb");假如使用 JavaScript,表達(dá)式將基本相同,只是要使用加號(hào) ( ) 而不是 & 號(hào)來(lái)串聯(lián)兩個(gè) 字符串,連接字符串可表示如下:Driver={Microsoft Access Driver (*.mdb)};DBQ=” Server.MapPath("/book/book.mdb")這樣我們便可以順利地移植ASP程序了(注重一定要將數(shù)據(jù)庫(kù)文件上載到遠(yuǎn)程服務(wù)器。記下它的虛擬路徑,例如”/book/book.mdb”,否則將會(huì)出錯(cuò))。 其時(shí)很多時(shí)候當(dāng)我們發(fā)現(xiàn)類似的錯(cuò)誤提示都應(yīng)該考慮到是否因?yàn)閿?shù)據(jù)庫(kù)連接產(chǎn)生了問(wèn)題,假如是便可使用上述方法解決.
新聞熱點(diǎn)
疑難解答
圖片精選