Database 版 (精华区)

发信人: starstar (星语心愿), 信区: Database
标  题: 基 于WEB 的 数 据 库 查 询 
发信站: 哈工大紫丁香 (2001年05月19日20:39:51 星期六), 站内信件

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

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

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

---- 通 过ODBIC 可 以 用 标 准 的ANSI SQL 语 句 诸 如:SELECT, INSERT, 
UPDATE, or DELETE 对 在ODBC 中 设 置 的 所 有 数 据 库 进 行 操 作。
ODBIC 的 最 大 优 点 是 可 以 用 摸 板 文 件 作 为 输 入, 摸 板 文 件 
也 能 接 收 

命 令 中 通 过submit 发 来 的 用 户 输 入 参 数, 摸 板 包 含 标 准 的
HTML 命 令 和 文 本, 并 且 这 些 命 令 和 文 本ODBIC 直 接 输 出 到 浏
 览 器 上, 当 然 摸 板 也 包 含ODBIC 命 令 和 变 量。 当ODBIC 以 摸 板
 作 为 输 入 运 行 时, 标 准 的HTML 命 令 和 文 本 直 接 输 出 到 浏 览
 器 上, 发 现ODBIC 命 令 时 立 即 执 行, 发 现ODBIC 变 量 时 立 即 用
 变 量 的 当 前 值 代 替。ODBIC 命 令 是 放 在 标 准 的HTML 语 言 的 注
 释 行 里,ODBIC 变 量 是 用 一 对 符 号 括 着, 下 面 一 个 很 简 单 的
 例 子 说 明ODBIC 命 令 和 变 量 是 如 何 出 现 在 摸 板 文 件 里 的: 


    < !--DATABASE DSN=$my_database$ -- >t;
    < !--SQL select * from my_table -- >;
    < !--TABLE-- >;
    DATABASE、SQL、TABLE 是ODBIC的最基本的命令。

---- 本 文 通 过 一 个 实 例 介 绍 用ODBIC 编 写 在 中 文WIN95 下 访 问
SQL SERVER 数 据 库 的 应 用 程 序, 体 会 以 下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 驱 
动 器, 本 例 中 为SQL SERVER; 建 立 数 据 源, 为 了 方 便 此 处 数 据
 源 的 名 也 为TELEPHONE。 如 果“ 控 制 面 板” 中 没 有ODBC 驱 动 程 
序, 可 以 从WIN95 的 系 统 盘 中 装 入, 也 可 从 一 些 共 享 软 件 站
 点 下 载, 具 体 办 法 此 处 不 在 赘 述。 

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

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

< HTML >
< HEAD >
< TITLE >长话明细查询主页< /TITLE >
< /HEAD >
< CENTER >
< TABLE  >
< FONT SIZE="5" COLOR="#990000" >
长话明细查询< /FONT >
< FORM METHOD="post" ACTION="
../cgi-bin/odbic.exe/cgi-bin/MODEL.html" >
< TR >< TD ALIGN="right" >< FONT COLOR="#990000" > 
电话号码 : < /FONT > < /TD >
< TD >< INPUT NAME="DHHM" TYPE="text" SIZE="12" >
< /TD >< /TR >
< TR >< TD ALIGN="right" >< FONT COLOR="#990000" > 
授权口令: < /FONT >   < /TD >
< TD >< INPUT NAME="PWD" TYPE="password" SIZE="12" >
< /TD >< /TR >
< TR >< TD ALIGN="right" >< FONT COLOR="#990000" > 
查询类型:  < /FONT >  < /TD >
    < TD >< SELECT NAME="CATE" >
     < OPTION VALUE= >--请选择--
     < OPTION VALUE="ch" >长话明细
     < /TD >< /TR >
< /TABLE >
< INPUT TYPE="submit" VALUE="查询 " >
< INPUT TYPE="reset" VALUE="清除 "  >< /FONT > 
< /FORM >
< /CENTER >
< /BODY >
< /HTML >

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

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

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

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

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

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

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

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

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

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

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

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

---- SET 对 变 量 赋 值; 

---- SQL 执 行ODBC SQL 语 句; 

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

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

< HTML >
< HEAD >
< TITLE >ODBIC-TEST-MODEL< /TITLE >
< /HEAD >
< BODY BGCOLOR="#ff00ff" TEXT="#FFFF00" 
LINK="#ff00ff" ACTIVE="#000000" VISITED="#000000" >
< center >
< table border=3 >
< !--if '$CATE$'='ch'-- >
< P >查询号码:$dhhm$
< !--SET HJ=0.0 -- >     //设置合计话费变量的初值;
< !--DATABASE DSN=telephone;UID=myloginame;
PWD=$PWD$ -- >
//DSN、UID、PWD分别为联结数据库的数据库名、
用户登录名称、
//登录口令,这三项均可以变量的形式接收用户输入;
< !--SQL select called,start_time,length,feI from detail where 
caller='$dhhm$' order by start_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 >< front SIZE="6" COLOR="#990000" > 
对不起你的口令错误!< /front >
< !--E-- >
< /center >
< /BODY >
< /HTML >

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

--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.239.32]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.371毫秒