隨著Internet應用的發展,主頁已不再僅僅是一個企業的資訊窗口,公司的許多業務都可透過INTERNET來實現,如客戶可透過供應商的主頁來訂貨、公司可透過自已的主頁收集客戶的回饋訊息等。另一方面,隨著公司業務的發展、地理分佈的拓寬,在總公司與各子公司之間建立一個簡單的區域網路已不可能,這時可透過INTERNET來實現各子公司與總公司之間的業務處理,即採用目前較為流行的企業應用解決方案即NCA結構、0客戶解決方案來實現。因此,如何使自己的主頁與資料庫動態地連接起來、如何透過主頁的操作來即時操縱資料庫中的記錄已成變為一個很重要的課題。以下就來介紹幾種解決主頁與資料庫動態連結的方法。
首先,為了讓大家能邊看下面的介紹邊上機操作,您需要在Windows 95或Windows NT上作如下準備工作。
1.建立ACCESS資料庫,c:my documentsmydata.mdb。
2.在mydata資料庫中建表mytable(a dblong,b dbtext,c dblong),並加入適量的試驗資料。
3.建立系統DSN(database source name),在控制面板的ODBC中進行設置,取資料來源名為ACCESSMDB,並指向剛建置的mydata資料庫。
4.安裝PWS(Personal Web Server),它位於Windows 98光碟的addonspws目錄中。
5.用frontpage在PWS上新建一Web,如http://yourhostname/myweb ,在預設情況下,yourhostname是您的主機名稱。
6.用frontpage軟體開啟新建的myweb,並新建一子目錄scripts,然後將scripts設定為可執行的子目錄。
至此,如果您的設定正確,那麼就可開啟Internet Explorer(以下簡稱IE),並在網址列中鍵入http://yourhostname/myweb/scripts後就會看到以下提示:
Directory Listing Denied
This Virtual Directory does not allow contents to be listed
這是因為該目錄既無缺省的html檔案(一般為default.htm),又不允許列出目錄,但這已說明您的pws設定正確。下面來介紹第一種製作方法。
一.用Frontpage Database Region Wizard精靈完成設定
·開啟Frontpage,進入已經建好的Web即myweb中,新一頁newpage1,並編輯它。
·點選選單列中的“insert”,並選擇“database”、“database region wizard”,這時會彈出一個對話框。
·在「odbc data source name」下的輸入列中,輸入已建置好的DSN,即Accessmdb,然後點選Next按鈕進入下一步。
·在「Enter the sql string for the query」下的輸入欄中輸入select a,b,c from mytable,然後點選Next按鈕進入步驟。
·點選Add按鈕,在「enter the name of a query field to be added to the list」下的輸入欄位中輸入欄位名稱a,然後點選Ok按鈕。
·重複上一步,將欄位b和c都加入到查詢清單中。
·點擊Finish按鈕。
·此時系統會提示您將該頁面儲存在可執行的目錄中,並將副檔名改為*.asp,依照指示將newpage1.htm移到scripts目錄中,將newpage1.htm重新命名為newpage1.asp 。
在IE網址列輸入http://youhostname/myweb/scripts/newpage1.asp ,按回車後就會看到資料庫中的實驗資料顯示了出來。
此種方法操作簡單,但不靈活,產生的html檔案可讀性差,不容易加入二次連結。
二.直接呼叫HTTPODBC.DLL(IDC/HTX)
HTTPODBC.DLL被稱為Internet Database Connector,是一個ISAPI(Internet Server Application Programming Interface),它透過呼叫ODBC來存取資料庫。
這種方法涉及三個主要文件:
1. httpodbc.dll
安裝PWS後,該檔案被放在windowssysteminetsrv目錄中。
2. IDC檔案
IDC檔案是一文字文件,副檔名為IDC(Internet Databse Connector),它包含HTML檔案連接到資料庫的必要資訊、SQL語句、範本檔案名稱等。
檔案格式:name:value,名稱為專案名稱,如datasource、template、sqlstatement、username、password等。
專案說明:
datasource:資料來源名,即在控制台的ODBC中所建置的資料來源名稱(system DSN)。
Template:範本檔名,該檔案要與IDC檔案同位於一個可執行的子目錄中。
Sqlstatement:所要執行的SQL語句。
一個IDC檔案至少要包含datasource、template、sqlstatement三項。
3. HTX文件
它是一個html文件,擴展名為HTX(HTML Extension File),它是資料庫中的記錄返回到頁面的格式說明。
格式說明:
<%begindetail%>:傳回多個記錄時的起始位置。
<%endetail%>:傳回多個記錄時的結束位置。
<%fieldname%>:傳回的欄位名稱表示方法。
4.舉例
.用notepad新建一文件,文件內容如下:
datasource:accessmdb
template:myhtx.htx
sqlstatement:select a,b,c from mytable
.將文件用myidc.idc名字儲存到scripts目錄。
.用notepad新建一文件,文件內容如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Home Page</title>
< /head>
<body>
<table border="1" width="100%">
<tr>
<th width="30%" align="center">A</th>
<th width="30%" align="center">B</th>
<th width="40%" align="center">C</th>
</tr>
<%begindetail%>
<tr>
<td width="30%" ><small><small><%a%></small></small></td>
<td width="30%"><small><small><%b%></small></ small></td>
<td width="40%"><small><small><%c%></small></small></td>
</tr>
<%enddetail%>
</table >
</body>
</html>
.以myhtx.htx名字儲存文件,將上述文件儲存到scripts目錄中。在IE的網址列輸入http://yourhostname/myweb/scripts/myidc.idc ,按回車後就可看到回傳的記錄了。
這種方法看起來很麻煩,但使用起來卻極為方便。事實上,您可以在資料庫中作查詢,將正確產生的SQL語句拷貝到IDC檔案的sqlstatement專案中。另一方面,你可用頁面編輯器(如Frontpage),作好一格式頁面,然後將生成的html文件拷貝到HTX文件中,再按HTX文件的格式要求稍作修改就變成標準的HTX文件了。
另外,IDC文件及HTX文件的可讀性強,您可修改HTX文件,從而產生二次鏈接,即按照返回的記錄鏈接到不同的IDC或HTML文件,如:
<tr><A href="< %a%>.htm"><%a%></A></tr>
這樣,在返回的表中,就形成了二次鏈接,按返回的字段a值的不同,可鏈接到不同的a.htm檔案。
三.用ActiveX元件製作動態Web頁面
這種方法的重點是,先用VISUAL BASIC 5.0或VISUAL C++在Web伺服器建立ActiveX元件,然後呼叫OLEISAPI.DLL,實現對資料庫的存取。其優點是使用非常靈活,在輸出的html檔案中可加總(total或subtotal),欄位可依指定的格式進行輸出。