web|动态|技巧|页面随着Internet应用的发展,主页已不再仅仅是一个企业的信息窗口,公司的许多业务都可通过INTERNET来实现,如客户可通过供应商的主页来订货、公司可通过自已的主页收集客户的反馈信息等。另一方面,随着公司业务的发展、地理分布的拓宽,在总公司与各子公司之间建立一个简单的局域网已不可能,这时可通过INTERNET来实现各子公司与总公司之间的业务处理,即采用目前较为流行的企业应用解决方案即NCA结构、0客户端解决方案来实现。因此,如何使自己的主页与数据库动态地连接起来、如何通过主页的操作来实时操纵数据库中的记录已成变为一个很重要的课题。下面就来介绍几种解决主页与数据库动态连接的方法。
首先,为了使大家能边看下面的介绍边上机操作,您需要在Windows 95或Windows NT上作如下准备工作。
1.建立ACCESS数据库,c:\my documents\mydata.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光盘的\addons\pws目录中。
5.用frontpage在PWS上新建一Web,如,在缺省情况下,yourhostname是您的主机名称。
6.用frontpage软件打开新建的myweb,并新建一子目录scripts,然后将scripts设置为可执行的子目录。
至此,如果您的设置正确,那么就可打开Internet Explorer(以下简称IE),并在地址栏中键入后就会看到如下提示:
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地址栏中输入,按回车后就会看到数据库中的实验数据被显示了出来。
此种方法操作简单,但不灵活,生成的html文件可读性差,不容易添加二次链接。
二.直接调用HTTPODBC.DLL(IDC/HTX)
HTTPODBC.DLL被称作Internet Database Connector,是一个ISAPI(Internet Server Application Programming Interface),它通过调用ODBC来访问数据库。
这种方法涉及三个主要文件:
1.httpodbc.dll
在安装PWS后,该文件被放在\windows\system\inetsrv目录中。
2.IDC文件
IDC文件是一文本文件,扩展名为IDC(Internet Databse Connector),它包含HTML文件连接到数据库的必要信息、SQL语句、模板文件名等。
文件格式:name:value,其中name为项目名称,如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的地址栏中输入,按回车后就可看到返回的记录了。
这种方法看起来麻烦,但使用起来却极为方便。事实上,您可以在数据库中作查询,将正确生成的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),字段可按指定的格式进行输出。