基于WEB的数据库查询

作者:未知 来源:未知 添加时间:2006年7月3日 字体:

----97年以来基于WEB的数据库应用在数据库界谈论的颇多,基于WEB的数据库的应用,是将数据库和WEB技术结合,按照BROWS/SERVER结构建立的通过浏览器访问数据库的服务系统。目前以WEB数据库为?帜的产品、原形或设计方案及研究论文很多,开发数据库的WEB应用,建立能与数据库交互的WEB网页,大致有三中方法:其一是网关接口(CGI),其二是JDBC(JAVADATABASECONNECTIVITY),其三是各数据库厂家开发的各自的WEB中间间。

----各数据库厂家开发的各自的WEB中间件虽好不能通用;JDBC可移植性、安全性与可靠性有显著优点,但对开发难度大,不能满足广大非专业人员的需要;CGI方式应用灵活,开发工具丰富,通用CGI程序也很多。本人通过在网上周游,寻得一WEB数据库CGI接口程序ODBIC(101K 字节大小),小巧玲珑,应用灵活,可以和各种数据库(包括FOXPRO系列、SQLSERVER、ORACLE等)建立连接。


----ODBIC(OPENDATABASEINTERNECONNECTOR)程序是运行在WINDOWSNT和WIN95上的共享软件,可通过http://www.iodbc.com获得该软件(目前已有ODBIC1.5版,本文使用的是ODBIC1.4版)。ODBIC是在浏览器和数据库之间提供一个接口,即一个CGI程序,可以通过浏览器时时更新和浏览数据库。


----通过ODBIC可以用标准的ANSISQL语句诸如:SELECT,INSERT,UPDATE,orDELETE对在ODBC中设置的所有数据库进行操作。ODBIC的最大优点是可以用摸板文件作为输入,摸板文件也能接收命令中通过submit发来的用户输入参数,摸板包含标准的HTML命令和文本,并且这些命令和文本ODBIC直接输出到浏览器上,当然摸板也包含ODBIC命令和变量。当ODBIC以摸板作为输入运行时,标准的HTML命令和文本直接输
出到浏览器上,发现ODBIC命令时立即执行,发现ODBIC变量时立即用变量的当前值代替。ODBIC命令是放在标准的HTML语言的注释行里,ODBIC变量是用一对符号括着,下面一个很简单的例子说明ODBIC命令和变量是如何出现在摸板文件里的:


<!--DATABASEDSN=$my_database$-->t;


<!--SQLselect*frommy_table-->;


<!--TABLE-->;


DATABASE、SQL、TABLE是ODBIC的最基本的命令。


----本文通过一个实例介绍用ODBIC编写在中文WIN95下访问SQL SERVER数据库的应用程序,体会以下ODBIC功能的灵活、方便、易学的,推荐给大家共免。


----在下面的例子里,我们要用到一电信营业数据库的长途电话明细表,表结构如下(数据库名为TELEPHONE,所用表名为DETAIL):


----主叫号码(CALLER)被叫号码(CALLED)起始时间(START-TIME)通话时长(LENGTH)秒通话话费(FEI)元


PQABCD1010123456798/0319/27100220


PQABCD2037112345698/0319/40370462


...


...


----首先,建立ODBC数据库的连接,打开WIN95的“设置”菜单中的“控制面板”,启动ODBC驱动程序,设置相应的ODBC驱动器,本例中为SQLSERVER;建立数据源,为了方便此处数据源的名也为TELEPHONE。如果“控制面板”中没有ODBC驱动程序,可以从WIN95的系统盘中装入,也可从一些共享软件站点下载,具体办法此处不在赘述。


----然后,编写长话明细查询主页,为了简化,清单中删去了一些修饰性的HTML语句,查询类型中也只保留了长话明细(可以包含电话挡案查询和更改、交费汇总和明细、帐务处理等等)。


----长话明细查询主页清单:SEARCH。HTML


<HTML>


<HEAD>


<TITLE>长话明细查询主页</TITLE>


</HEAD>


<CENTER>


<TABLE>


<FONTSIZE="5"COLOR="#990000">


长话明细查询</FONT>


<FORMMETHOD="post"ACTION="


../cgi-bin/odbic.exe/cgi-bin/MODEL.html">


<TR><TDALIGN="right"><FONTCOLOR="#990000">


电话号码:</FONT></TD>


<TD><INPUTNAME="DHHM"TYPE="text"SIZE="12"
>


</TD></TR>


<TR><TDALIGN="right"><FONTCOLOR="#990000">


授权口令:</FONT></TD>


<TD><INPUTNAME="PWD"TYPE="password"SIZE="12"
>


</TD></TR>


<TR><TDALIGN="right"><FONTCOLOR="#990000">


查询类型:</FONT></TD>


<TD><SELECTNAME="CATE">


<OPTION&#118alue=>--请选择--


<OPTION&#118alue="ch">长话明细


</TD></TR>


</TABLE>


<INPUTTYPE="submit"&#118alue="查询">


<INPUTTYPE="reset"&#118alue="清除"></FONT>


</FORM>


</CENTER>


</BODY>


</HTML>


----接下来就是编写摸板文件,在编写之前,先介绍以下ODBIC的主要命令。ODBIC软件主要有以下命令:


----DATABASE定义连接ODBC数据库的参数;


----DEFAULT定义变量的默认初始值;


----EACHROW,ENDROW格式化结构化查询后的每一行结果;


----EXEC执行一个系统命令或运行一个DOS程序;


----EXIT终止ODBIC对摸板文件的执行;


----FORMAT定义变量的输出格式;


----IF,ELSE,ENDIF变量条件判断语句;


----IFNEW判断经过对某一字段排序的表是否该字段的值发生了变化;


----INCLUDE读入另一摸板文件;


----OPTIONLIST从查询结果产生一个HTML的“SELECTOPTION”命令;


----OUTPUT把结果输出到磁盘文件;


----SET对变量赋值;


----SQL执行ODBCSQL语句;


----TABLE自动格式化SELECT语句的结果到HTML格式。


----从以上命令可以看出,ODBIC软件功能的强大,通过IF-ELSE-ENDIF和SET命令,可以编写实现很多功能,下面摸板的功能是从SEARCH.HTML主页中获取电话号码和授权口令,对所输号码的明细进行查询,查询结果以表格形式输出,并对话费进行合计。摸板文件清单见后(文件中“//”后面的是注释):摸板文件清单:MODEL.HTML


<HTML>


<HEAD>


<TITLE>ODBIC-TEST-MODEL</TITLE>


</HEAD>


<BODYBGCOLOR="#ff00ff"TEXT="#FFFF00"


LINK="#ff00ff"ACTIVE="#000000"VISITED="#000000">


<center>


<tableborder=3>


<!--if'$CATE$'='ch'-->


<P>查询号码:$dhhm$


<!--SETHJ=0.0-->//设置合计话费变量的初值;


<!--DATABASEDSN=telephone;UID=myloginame;


PWD=$PWD$-->


//DSN、UID、PWD分别为联结数据库的数据库名、


用户登录名称、


//登录口令,这三项均可以变量的形式接收用户输入;


<!--SQLselectcalled,start_time,length,feIfromdetailwhere


caller='$dhhm$'orderbystart_time-->


<!--eachrow-->


<tr><td>$row$</td><td>$called$</td><td>


$start_time$</td><td>$length$</td>


<td>$fei$</td></tr>//变量row为ODBIC


本身提供内部变量,表示当前结果集的行


//号,ODBIC对结果集的字段名自动默认为变量;


<!--set$HJ$=$HJ$+$FEI$-->


<!--endrow-->


</table>


<!--ELSE-->


<p><frontSIZE="6"COLOR="#990000">


对不起你的口令错误!</front>


<!--E-->


</center>


</BODY>


</HTML>


----总上所述,我们SQLSERVER数据库进行了交互访问,同样也可对ORACLE、SYBASE、ACCESS、FOXPRO系列等数据库的访问,并且在同一个摸板文件可以同时打开上述数据库,并把它们关联起来进行事务处理。对于广大关心基于WEB的数据库应用的计算机爱好者来说,ODBIC的确简单、易学、功能强大,本文只是大致介绍了以下,希望我的文章能起到抛砖引玉的作用,欢迎朋友门交流、指导。

ppdesk