網頁三劍客以其簡單易學迅速被廣大愛好者所青睞,尤其是DW已成為初學者制作網站的首選工具。但我們在用DW制作ASP access程序時,經常會出現這樣或那樣的錯誤,尤其是數據庫方面顯得非凡突出。本文就此方面出現的一些常見的問題談談其原因及解決辦法。
一、上傳網頁時出現如下錯誤:Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC 驅動程序治理器] 未發現數據源名稱并且未指定默認驅動程序
此類錯誤出現的情況大多是在用DW建立站點時運行到下面的步驟時我們選擇了第一項或第二項,如圖一:
圖一
1、當選擇了第一項時,我們開發的ASP程序是在本地編輯和測試。在應用數據庫時建立數據庫連接大多采用的是DSN或自定義連接字符串
用DSN時如圖二所示:
圖二
DSN是用ODBC數據源治理器建立。我們知道DSN有用戶DSN、系統DSN、文件DSN三種,其中用戶DSN與系統DSN只能用于當前機器,不能為別的機器所用。而在用DW建立ASP程序時在上圖的第二項只能顯示系統DSN,因此當我們將ASP程序上傳或到別的機器運行時便會出現上述問題。
用自定義連接字符串時如圖三所示:
圖三
連接字符串包含 Web 應用程序連接到數據庫所需的全部信息。
Driver 指定在沒有為數據庫指定 OLE DB 提供程序時所使用的 ODBC 驅動程序。
DBQ 是指向基于文件的數據庫(如在 Microsoft Access 中創建的數據庫)的路徑。該路徑是在測試數據庫文件的服務器上的路徑。
下面是一個連接字符串示例,它將創建與名為book.mdb 的 Access 數據庫的 ODBC 連接:Driver={Microsoft Access Driver (*.mdb)};DBQ=d:/book/trees.mdb。Dreamweaver 在服務器端腳本中插入該字符串,以便應用程序服務器隨后進行處理。當我們將ASP程序上傳或到別的機器運行時假如測試的路徑與連接字符串的數據庫路徑不一致時,便會發生上述問題。
2 當選擇了第二項時,我們開發的ASP程序是在本地編輯,然后上傳到遠程服務器測試。建立數據庫連接也采用的是DSN或自定義連接字符串,不同的是都采用的測試服務器上的DSN或連接字符串。當采用測試服務器上的DSN時同樣也只能用系統DSN于是當到別和機器運行ASP程序時,也就產生了同樣的問題。當采用自定義字符串時假如測試的路徑與連接字符串的數據庫路徑不一致時,也會發生同樣的問題。
從以上分析可知,要使自己用DW開發的ASP程序具有可移植性最好采用自定義字符串(也可采用文件DSN但對于初學者用自定義字符串輕易些)。其具體情況如下:
對于建立站點時選擇在本地編輯與測試,可采用此自定義連接字符串: Driver={Microsoft Access Driver (*.mdb)};DBQ=d:/book/trees.mdb(d:/book表示數據庫文件的實際路徑);D而對于在本地編輯然后上傳到遠程服務器測試,若要將非 DSN 連接字符串寫入位于遠程服務器,必須知道該文件的實際路徑.假如不知道文件在遠程服務器上的實際路徑,則可以通過在連接字符串中使用 MapPath 方法來獲取該路徑。其自定義連接字符串為: 假如使用 VBScript 作為腳本撰寫語言,連接字符串可表示如下:Driver={Microsoft Access Driver (*.mdb)};DBQ=” & Server.MapPath("/book/book.mdb");假如使用 JavaScript,表達式將基本相同,只是要使用加號 ( ) 而不是 & 號來串聯兩個 字符串,連接字符串可表示如下:Driver={Microsoft Access Driver (*.mdb)};DBQ=” Server.MapPath("/book/book.mdb")這樣我們便可以順利地移植ASP程序了(注重一定要將數據庫文件上載到遠程服務器。記下它的虛擬路徑,例如”/book/book.mdb”,否則將會出錯)。 其時很多時候當我們發現類似的錯誤提示都應該考慮到是否因為數據庫連接產生了問題,假如是便可使用上述方法解決.
新聞熱點
疑難解答