基于WEB的數(shù)據(jù)庫(kù)查詢(xún)
發(fā)表時(shí)間:2024-06-08 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]---- 97 年 以 來(lái) 基 于WEB 的 數(shù) 據(jù) 庫(kù) 應(yīng) 用 在 數(shù) 據(jù) 庫(kù) 界 談 論 的 頗 多, 基 于WEB 的 數(shù) 據(jù) 庫(kù) 的 應(yīng) 用, 是 將 數(shù) 據(jù) 庫(kù) 和WEB 技 術(shù) 結(jié) 合, 按 照BROWS/SERVER 結(jié) 構(gòu) 建 立 的 通 過(guò) 瀏 覽 器 訪 問(wèn) 數(shù) 據(jù) 庫(kù) 的 服...
---- 97 年 以 來(lái) 基 于WEB 的 數(shù) 據(jù) 庫(kù) 應(yīng) 用 在 數(shù) 據(jù) 庫(kù) 界 談 論 的 頗
多, 基 于WEB 的 數(shù) 據(jù) 庫(kù) 的 應(yīng) 用, 是 將 數(shù) 據(jù) 庫(kù) 和WEB 技 術(shù) 結(jié)
合, 按 照BROWS/SERVER 結(jié) 構(gòu) 建 立 的 通 過(guò) 瀏 覽 器 訪 問(wèn) 數(shù) 據(jù) 庫(kù) 的
服 務(wù) 系 統(tǒng)。 目 前 以WEB 數(shù) 據(jù) 庫(kù) 為 旗 幟 的 產(chǎn) 品、 原 形 或 設(shè)
計(jì) 方 案 及 研 究 論 文 很 多, 開(kāi) 發(fā) 數(shù) 據(jù) 庫(kù) 的WEB 應(yīng) 用, 建 立
能 與 數(shù) 據(jù) 庫(kù) 交 互 的WEB 網(wǎng) 頁(yè), 大 致 有 三 中 方 法: 其 一 是
網(wǎng) 關(guān) 接 口(CGI), 其 二 是JDBC(JAVA DATABASE CONNECTIVITY), 其 三 是
各 數(shù) 據(jù) 庫(kù) 廠 家 開(kāi) 發(fā) 的 各 自 的WEB 中 間 間。
---- 各 數(shù) 據(jù) 庫(kù) 廠 家 開(kāi) 發(fā) 的 各 自 的WEB 中 間 件 雖 好 不 能 通
用;JDBC 可 移 植 性、 安 全 性 與 可 靠 性 有 顯 著 優(yōu) 點(diǎn), 但 對(duì)
開(kāi) 發(fā) 難 度 大, 不 能 滿(mǎn) 足 廣 大 非 專(zhuān) 業(yè) 人 員 的 需 要;CGI 方
式 應(yīng) 用 靈 活, 開(kāi) 發(fā) 工 具 豐 富, 通 用CGI 程 序 也 很 多。 本
人 通 過(guò) 在 網(wǎng) 上 周 游, 尋 得 一WEB 數(shù) 據(jù) 庫(kù)CGI 接 口 程 序ODBIC(101K
字 節(jié) 大 小), 小 巧 玲 瓏, 應(yīng) 用 靈 活, 可 以 和 各 種 數(shù) 據(jù)
庫(kù)( 包 括FOXPRO 系 列、SQL SERVER、ORACLE 等) 建 立 連 接。
---- ODBIC(OPEN DATABASE INTERNE CONNECTOR) 程 序 是 運(yùn) 行 在WINDOWS NT 和WIN95
上 的 共 享 軟 件, 可 通 過(guò)http://www.iodbc.com 獲 得 該 軟 件( 目 前
已 有ODBIC1.5 版, 本 文 使 用 的 是ODBIC1.4 版)。ODBIC 是 在 瀏 覽 器
和 數(shù) 據(jù) 庫(kù) 之 間 提 供 一 個(gè) 接 口, 即 一 個(gè)CGI 程 序, 可 以 通
過(guò) 瀏 覽 器 時(shí) 時(shí) 更 新 和 瀏 覽 數(shù) 據(jù) 庫(kù)。
---- 通 過(guò)ODBIC 可 以 用 標(biāo) 準(zhǔn) 的ANSI SQL 語(yǔ) 句 諸 如:SELECT, INSERT,
UPDATE, or DELETE 對(duì) 在ODBC 中 設(shè) 置 的 所 有 數(shù) 據(jù) 庫(kù) 進(jìn) 行 操 作。ODBIC
的 最 大 優(yōu) 點(diǎn) 是 可 以 用 摸 板 文 件 作 為 輸 入, 摸 板 文 件 也
能 接 收
命 令 中 通 過(guò)submit 發(fā) 來(lái) 的 用 戶(hù) 輸 入 參 數(shù), 摸 板 包 含 標(biāo) 準(zhǔn)
的HTML 命 令 和 文 本, 并 且 這 些 命 令 和 文 本ODBIC 直 接 輸 出
到 瀏 覽 器 上, 當(dāng) 然 摸 板 也 包 含ODBIC 命 令 和 變 量。 當(dāng)ODBIC
以 摸 板 作 為 輸 入 運(yùn) 行 時(shí), 標(biāo) 準(zhǔn) 的HTML 命 令 和 文 本 直 接 輸
出 到 瀏 覽 器 上, 發(fā) 現(xiàn)ODBIC 命 令 時(shí) 立 即 執(zhí) 行, 發(fā) 現(xiàn)ODBIC 變
量 時(shí) 立 即 用 變 量 的 當(dāng) 前 值 代 替。ODBIC 命 令 是 放 在 標(biāo) 準(zhǔn)
的HTML 語(yǔ) 言 的 注 釋 行 里,ODBIC 變 量 是 用 一 對(duì) 符 號(hào) 括 著, 下
面 一 個(gè) 很 簡(jiǎn) 單 的 例 子 說(shuō) 明ODBIC 命 令 和 變 量 是 如 何 出 現(xiàn)
在 摸 板 文 件 里 的:
< !--DATABASE DSN=$my_database$ -- >t;
< !--SQL select * from my_table -- >;
< !--TABLE-- >;
DATABASE、SQL、TABLE 是ODBIC的最基本的命令。
---- 本 文 通 過(guò) 一 個(gè) 實(shí) 例 介 紹 用ODBIC 編 寫(xiě) 在 中 文WIN95 下 訪 問(wèn)SQL
SERVER 數(shù) 據(jù) 庫(kù) 的 應(yīng) 用 程 序, 體 會(huì) 以 下ODBIC 功 能 的 靈 活、 方
便、 易 學(xué) 的, 推 薦 給 大 家 共 免。
---- 在 下 面 的 例 子 里, 我 們 要 用 到 一 電 信 營(yíng) 業(yè) 數(shù) 據(jù) 庫(kù)
的 長(zhǎng) 途 電 話(huà) 明 細(xì) 表, 表 結(jié) 構(gòu) 如 下( 數(shù) 據(jù) 庫(kù) 名 為T(mén)ELEPHONE,
所 用 表 名 為DETAIL):
---- 主叫號(hào)碼(CALLER) 被叫號(hào)碼(CALLED) 起始時(shí)間(START-TIME) 通話(huà)時(shí)長(zhǎng)(LENGTH)秒
通話(huà)話(huà)費(fèi)(FEI)元
PQABCD1 0101234567 98/03 19/27 100 220
PQABCD2 0371123456 98/03 19/40 370 462
...
...
---- 首 先, 建 立ODBC 數(shù) 據(jù) 庫(kù) 的 連 接, 打 開(kāi)WIN95 的“ 設(shè) 置” 菜
單 中 的“ 控 制 面 板”, 啟 動(dòng)ODBC 驅(qū) 動(dòng) 程 序, 設(shè) 置 相 應(yīng) 的ODBC
驅(qū) 動(dòng) 器, 本 例 中 為SQL SERVER; 建 立 數(shù) 據(jù) 源, 為 了 方 便 此 處
數(shù) 據(jù) 源 的 名 也 為T(mén)ELEPHONE。 如 果“ 控 制 面 板” 中 沒(méi) 有ODBC 驅(qū)
動(dòng) 程 序, 可 以 從WIN95 的 系 統(tǒng) 盤(pán) 中 裝 入, 也 可 從 一 些 共 享
軟 件 站 點(diǎn) 下 載, 具 體 辦 法 此 處 不 在 贅 述。
---- 然 后, 編 寫(xiě) 長(zhǎng) 話(huà) 明 細(xì) 查 詢(xún) 主 頁(yè), 為 了 簡(jiǎn) 化, 清 單 中
刪 去 了 一 些 修 飾 性 的HTML 語(yǔ) 句, 查 詢(xún) 類(lèi) 型 中 也 只 保 留 了
長(zhǎng) 話(huà) 明 細(xì)( 可 以 包 含 電 話(huà) 擋 案 查 詢(xún) 和 更 改、 交 費(fèi) 匯 總
和 明 細(xì)、 帳 務(wù) 處 理 等 等)。
---- 長(zhǎng) 話(huà) 明 細(xì) 查 詢(xún) 主 頁(yè) 清 單:SEARCH。HTML
< HTML >
< HEAD >
< TITLE >長(zhǎng)話(huà)明細(xì)查詢(xún)主頁(yè)< /TITLE >
< /HEAD >
< CENTER >
< TABLE >
< FONT SIZE="5" COLOR="#990000" >
長(zhǎng)話(huà)明細(xì)查詢(xún)< /FONT >
< FORM METHOD="post" ACTION="
../cgi-bin/odbic.exe/cgi-bin/MODEL.html" >
< TR >< TD ALIGN="right" >< FONT COLOR="#990000" >
電話(huà)號(hào)碼 : < /FONT > < /TD >
< TD >< INPUT NAME="DHHM" TYPE="text" SIZE="12"
>
< /TD >< /TR >
< TR >< TD ALIGN="right" >< FONT COLOR="#990000" >
授權(quán)口令: < /FONT > < /TD >
< TD >< INPUT NAME="PWD" TYPE="password" SIZE="12"
>
< /TD >< /TR >
< TR >< TD ALIGN="right" >< FONT COLOR="#990000" >
查詢(xún)類(lèi)型: < /FONT > < /TD >
< TD >< SELECT NAME="CATE" >
< OPTION VALUE= >--請(qǐng)選擇--
< OPTION VALUE="ch" >長(zhǎng)話(huà)明細(xì)
< /TD >< /TR >
< /TABLE >
< INPUT TYPE="submit" VALUE="查詢(xún) " >
< INPUT TYPE="reset" VALUE="清除 " >< /FONT >
< /FORM >
< /CENTER >
< /BODY >
< /HTML >
---- 接 下 來(lái) 就 是 編 寫(xiě) 摸 板 文 件, 在 編 寫(xiě) 之 前, 先 介 紹 以
下ODBIC 的 主 要 命 令。ODBIC 軟 件 主 要 有 以 下 命 令:
---- DATABASE 定 義 連 接ODBC 數(shù) 據(jù) 庫(kù) 的 參 數(shù);
---- DEFAULT 定 義 變 量 的 默 認(rèn) 初 始 值;
---- EACHROW, ENDROW 格 式 化 結(jié) 構(gòu) 化 查 詢(xún) 后 的 每 一 行 結(jié) 果;
---- EXEC 執(zhí) 行 一 個(gè) 系 統(tǒng) 命 令 或 運(yùn) 行 一 個(gè)DOS 程 序;
---- EXIT 終 止ODBIC 對(duì) 摸 板 文 件 的 執(zhí) 行;
---- FORMAT 定 義 變 量 的 輸 出 格 式;
---- IF, ELSE, ENDIF 變 量 條 件 判 斷 語(yǔ) 句;
---- IFNEW 判 斷 經(jīng) 過(guò) 對(duì) 某 一 字 段 排 序 的 表 是 否 該 字 段 的 值
發(fā) 生 了 變 化;
---- INCLUDE 讀 入 另 一 摸 板 文 件;
---- OPTIONLIST 從 查 詢(xún) 結(jié) 果 產(chǎn) 生 一 個(gè)HTML 的“SELECT OPTION” 命 令;
---- OUTPUT 把 結(jié) 果 輸 出 到 磁 盤(pán) 文 件;
---- SET 對(duì) 變 量 賦 值;
---- SQL 執(zhí) 行ODBC SQL 語(yǔ) 句;
---- TABLE 自 動(dòng) 格 式 化SELECT 語(yǔ) 句 的 結(jié) 果 到HTML 格 式。
---- 從 以 上 命 令 可 以 看 出,ODBIC 軟 件 功 能 的 強(qiáng) 大, 通 過(guò)IF-ELSE-
ENDIF 和SET 命 令, 可 以 編 寫(xiě) 實(shí) 現(xiàn) 很 多 功 能, 下 面 摸 板 的 功
能 是 從SEARCH.HTML 主 頁(yè) 中 獲 取 電 話(huà) 號(hào) 碼 和 授 權(quán) 口 令, 對(duì) 所
輸 號(hào) 碼 的 明 細(xì) 進(jìn) 行 查 詢(xún), 查 詢(xún) 結(jié) 果 以 表 格 形 式 輸 出,
并 對(duì) 話(huà) 費(fèi) 進(jìn) 行 合 計(jì)。 摸 板 文 件 清 單 見(jiàn) 后( 文 件 中“//”
后 面 的 是 注 釋?zhuān)?摸 板 文 件 清 單: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 >查詢(xún)號(hào)碼:$dhhm$
< !--SET HJ=0.0 -- > //設(shè)置合計(jì)話(huà)費(fèi)變量的初值;
< !--DATABASE DSN=telephone;UID=myloginame;
PWD=$PWD$ -- >
//DSN、UID、PWD分別為聯(lián)結(jié)數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)名、
用戶(hù)登錄名稱(chēng)、
//登錄口令,這三項(xiàng)均可以變量的形式接收用戶(hù)輸入;
< !--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
本身提供內(nèi)部變量,表示當(dāng)前結(jié)果集的行
//號(hào),ODBIC對(duì)結(jié)果集的字段名自動(dòng)默認(rèn)為變量;
< !--set $HJ$=$HJ$+$FEI$-- >
< !--endrow-- >
< /table >
< !--ELSE -- >
< p >< front SIZE="6" COLOR="#990000" >
對(duì)不起你的口令錯(cuò)誤!< /front >
< !--E-- >
< /center >
< /BODY >
< /HTML >
---- 總 上 所 述, 我 們SQL SERVER 數(shù) 據(jù) 庫(kù) 進(jìn) 行 了 交 互 訪 問(wèn), 同
樣 也 可 對(duì)ORACLE、SYBASE、ACCESS、FOXPRO 系 列 等 數(shù) 據(jù) 庫(kù) 的 訪 問(wèn),
并 且 在 同 一 個(gè) 摸 板 文 件 可 以 同 時(shí) 打 開(kāi) 上 述 數(shù) 據(jù) 庫(kù), 并
把 它 們 關(guān) 聯(lián) 起 來(lái) 進(jìn) 行 事 務(wù) 處 理。 對(duì) 于 廣 大 關(guān) 心 基 于WEB
的 數(shù) 據(jù) 庫(kù) 應(yīng) 用 的 計(jì) 算 機(jī) 愛(ài) 好 者 來(lái) 說(shuō),ODBIC 的 確 簡(jiǎn) 單、 易
學(xué)、 功 能 強(qiáng) 大, 本 文 只 是 大 致 介 紹 了 以 下, 希 望 我 的
文 章 能 起 到 拋 磚 引 玉 的 作 用, 歡 迎 朋 友 門(mén) 交 流、 指
導(dǎo)。
(出處:熱點(diǎn)網(wǎng)絡(luò))