本文通过一个实例介绍用ODBIC编写在中文WIN95下访问SQLSERVER数据库的应用程序,体会以下ODBIC功能的灵活、方便、易学的,推荐给大家共免。
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命令和变量是如何出现在摸板文件里的:
DATABASE DSN=$my_database$ -- >t; ; TABLE-- >; |
DATABASE、SQL、TABLE 是ODBIC的最基本的命令。
本文通过一个实例介绍用ODBIC编写在中文WIN95下访问SQLSERVER数据库的应用程序,体会以下ODBIC功能的灵活、方便、易学的,推荐给大家共免。在下面的例子里,我们要用到一电信营业数据库的长途电话明细表,表结构如下(数据库名为TELEPHONE,所用表名为DETAIL):
主叫号码(CALLER) 被叫号码(CALLED) 起始时间(START-TIME) 通话时长(LENGTH)秒 通话话费(FEI)元
PQABCD1 0101234567 98/03 19/27 100 220
PQABCD2 0371123456 98/03 19/40 370 462
……
……
首先,建立ODBC数据库的连接,打开WIN95的“设置”菜单中的“控制面板”,启动ODBC驱动程序,设置相应的ODBC驱动器,本例中为SQLSERVER;建立数据源,为了方便此处数据源的名也为TELEPHONE。如果“控制面板”中没有ODBC驱动程序,可以从WIN95的系统盘中装入,也可从一些共享软件站点下载,具体办法此处不在赘述。
然后,编写长话明细查询主页,为了简化,清单中删去了一些修饰性的HTML语句,查询类型中也只保留了长话明细(可以包含电话挡案查询和更改、交费汇总和明细、帐务处理等等)。
长话明细查询主页清单:SEARCH.HTML
长话明细查询主页 TABLE > FONT SIZE="5" COLOR="#990000" > 长话明细查询 METHOD="post" ACTION=" ../cgi-bin/odbic.exe/cgi-bin/MODEL.html" > 电话号码 : text" SIZE="12" > 授权口令: password" SIZE="12" > 查询类型: --请选择-- 长话明细 |
接下来就是编写摸板文件,在编写之前,先介绍以下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
ODBIC-TEST-MODEL TEXT="#FFFF00" LINK="#ff00ff" ACTIVE="#000000" VISITED="#000000" > 查询号码:$dhhm$ //设置合计话费变量的初值; DATABASE DSN=telephone;UID=myloginame;PWD=$PWD$ -- > //DSN、UID、PWD分别为联结数据库的数据库名、 用户登录名称、 //登录口令,这三项均可以变量的形式接收用户输入; caller=$dhhm$ order by start_time -- > $row$$called$ $start_time$$length$ $fei$ //变量row为ODBIC 本身提供内部变量,表示当前结果集的行//号,ODBIC对结果集的字段名自动默认为变量; 对不起你的口令错误! |
总上所述,我们SQLSERVER数据库进行了交互访问,同样也可对ORACLE、SYBASE、ACCESS、FOXPRO系列等数据库的访问,并且在同一个摸板文件可以同时打开上述数据库,并把它们关联起来进行事务处理。对于广大关心基于WEB的数据库应用的计算机爱好者来说,ODBIC的确简单、易学、功能强大,本文只是大致介绍了以下,希望我的文章能起到抛砖引玉的作用,欢迎朋友门交流、指导。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16436858/viewspace-618116/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/16436858/viewspace-618116/