隨著Internet應用的發(fā)展,主頁已不再僅僅是一個企業(yè)的信息窗口,公司的許多業(yè)務都可通過INTERNET來實現(xiàn),如客戶可通過供應商的主頁來訂貨、公司可通過自已的主頁收集客戶的反饋信息等。另一方面,隨著公司業(yè)務的發(fā)展、地理分布的拓寬,在總公司與各子公司之間建立一個簡單的局域網已不可能,這時可通過INTERNET來實現(xiàn)各子公司與總公司之間的業(yè)務處理,即采用目前較為流行的企業(yè)應用解決方案即NCA結構、0客戶端解決方案來實現(xiàn)。因此,如何使自己的主頁與數(shù)據(jù)庫動態(tài)地連接起來、如何通過主頁的操作來實時操縱數(shù)據(jù)庫中的記錄已成變?yōu)橐粋很重要的課題。下面就來介紹幾種解決主頁與數(shù)據(jù)庫動態(tài)連接的方法。
首先,為了使大家能邊看下面的介紹邊上機操作,您需要在Windows 95或Windows NT上作如下準備工作。
1.建立ACCESS數(shù)據(jù)庫,c:/my documents/mydata.mdb。
2.在mydata數(shù)據(jù)庫中建表mytable(a dblong,b dbtext,c dblong),并添加適量的試驗數(shù)據(jù)。
3.建立系統(tǒng)DSN(database source name),在控制面板的ODBC中進行設置,取數(shù)據(jù)源名為ACCESSMDB,并指向剛建的mydata數(shù)據(jù)庫。
4.安裝PWS(Personal Web Server),它位于Windows 98光盤的/addons/pws目錄中。
5.用frontpage在PWS上新建一Web,如http://yourhostname/myweb,在缺省情況下,yourhostname是您的主機名稱。
6.用frontpage軟件打開新建的myweb,并新建一子目錄scripts,然后將scripts設置為可執(zhí)行的子目錄。
至此,如果您的設置正確,那么就可打開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按鈕。
·此時系統(tǒng)會提示您將該頁面保存在可執(zhí)行的目錄中,并將擴展名改為*.asp,按照提示將newpage1.htm移動到scripts目錄中,將newpage1.htm重命名為newpage1.asp。
在IE地址欄中輸入http://youhostname/myweb/scripts/newpage1.asp,按回車后就會看到數(shù)據(jù)庫中的實驗數(shù)據(jù)被顯示了出來。
此種方法操作簡單,但不靈活,生成的html文件可讀性差,不容易添加二次鏈接。
二.直接調用HTTPODBC.DLL(IDC/HTX)
HTTPODBC.DLL被稱作Internet Database Connector,是一個ISAPI(Internet Server Application Programming Interface),它通過調用ODBC來訪問數(shù)據(jù)庫。
這種方法涉及三個主要文件:
1.httpodbc.dll
在安裝PWS后,該文件被放在/windows/system/inetsrv目錄中。
2.IDC文件
IDC文件是一文本文件,擴展名為IDC(Internet Databse Connector),它包含HTML文件連接到數(shù)據(jù)庫的必要信息、SQL語句、模板文件名等。
文件格式:name:value,其中name為項目名稱,如datasource、template、sqlstatement、username、password等。
項目說明:
datasource:數(shù)據(jù)源名,即在控制面板的ODBC中所建的數(shù)據(jù)源名(system DSN)。
Template:模板文件名,該文件要與IDC文件同位于一個可執(zhí)行的子目錄中。
Sqlstatement:所要執(zhí)行的SQL語句。
一個IDC文件至少要包含datasource、template、sqlstatement三項。
3.HTX文件
它是一個html文件,擴展名為HTX(HTML Extension File),它是數(shù)據(jù)庫中的記錄返回到頁面的格式說明。
格式說明:
<%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,按回車后就可看到返回的記錄了。
這種方法看起來麻煩,但使用起來卻極為方便。事實上,您可以在數(shù)據(jù)庫中作查詢,將正確生成的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部件制作動態(tài)Web頁面
這種方法的重點是,首先用VISUAL BASIC 5.0或VISUAL C++在Web服務器建立ActiveX部件,然后調用OLEISAPI.DLL,實現(xiàn)對數(shù)據(jù)庫的訪問。其優(yōu)點是使用非常靈活,在輸出的html文件中可添加匯總(total或subtotal),字段可按指定的格式進行輸出。