说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

利 用Delphi 开 发 响 应 用 户 输 入 的 数 据 库 查 询Web Server 程

HTML文档下载 WORD文档下载 PDF文档下载
利 用Delphi 开 发 响 应 用 户 输 入 的 数 据 库 查 询Web Server 程

通 常 情 况 下, 用 户 通 过 浏 览 器 在Web 站 点 上 看 到 的 网 页 大 多 是 静 态 的, 随 着Internet/Intranet 的 飞 速 发 展 和 普 遍 应 用, 静 态 网 页 已 这 远 远 不 能 满 足 用 户 的 实 际 需 求

用 户 希 望 更 多 地 看 到 根 据 要 求 而 动 态 生 成 的 网 页, 例 如 响 应 用 户 输 入( 选 择) 进 行 数 据 库 查 询、 动 态 生 成 报 表 等。 就 目 前 而 言, 采 用 运 行 在Web Server 端 的CGI、ISAPI/NSAPI 应 用 程 序 还 是 一 种 主 要 的 动 态 生 成 网 页 的 方 式。

使 用Delphi 3 for Client/Server 开 发Web Server 应 用 程 序 不 仅 简 单、 方 便, 而 且 其 开 发 能 力 十 分 强 大, 因 为Delphi 3 提 供 了WebModule、WebApplication、TwebRequest、TwebResponse、TPageProducer 等 大 量 的 组 件 和 对 象, 以 支 持Web Server 程 序 的 开 发, 能 够 非 常 简 单 地 生 成 专 业 性 的 ISAPI/NSAI、CGI 程 序。 而 且 由 于Delphi 强 大 的 数 据 库 开 发 能 力, 允 许DLL 来 处 理 大 量 并 发 的、 安 全 线 程 的 数 据 库 连 接, 使 得Web Server 程 序 的 开 发 更 是 锦 上 添 花。

在Delphi 3 的Demos 中 提 供 了 简 单 的Web Server 应 用 程 序 开 发 的 范 例, 但 没 有 涉 及 到 响 应 用 户 输 入 的 问 题。 而 响 应 用 户 的 输 入 或 选 择, 并 通 过 数 据 库 查 询 来 返 回 查 询 结 果, 是 我 们 编 写Web Server 应 用 程 序 的 一 种 主 要 形 式。

HTML 文 档 中 用 户 输 入 主 要 是 通 过< FORM > 语 句 段, 并 支 持POST、PUT、GET、HEAD 等 方 法, 而Web Server 应 用 程 序 是 怎 样 接 收 到 客 户 端 用 户 的 输 入( 选 择) 请 求 信 息 呢 ? 我 们 知 道, 在HTTP 协 议 中, 浏 览 器 客 户 端 向Web Server 应 用 程 序 传 送 请 求 数 据 主 要 是 通 过URL 和CONTENT 部 分。 例 如 在

URL:http://www.gtgaj.gov/scripts/wdcx.dll

/runquery?gdnd=1992&bgqx= 长 期

其中,gdnd=1992&bgqx= 长 期 是 数 据 参 数, 它 请 求ISAPI 程 序wdcx.dll( 对 应 的 动 作 事 件 为/runquery, 若 使 用 确 省 动 作 事 件, 则 不 需 要 这 个 字 符 串), 把 归 档 年 代(gdnd) 为1992 年 而 且 保 管 期 限(bgqx) 为 长 期 的 文 档 信 息 返 回 到 浏 览 器 并 显 示, 这 种 方 法 一 般 应 用 在 数 据 量 比 较 少 的 情 况 下, 优 点 是 比 较 容 易 输 入 参 数, 可 直 接 在URL 中 输 入 请 求 信 息, 缺 点 是 返 回 数 据 量 不 能 太 大, 并 影 响URL 的 显 示, 在 参 数 比 较 多 时, 将 出 现 一 个 长 串 的URL。 而 在CONTENT 中 保 存 数 据 信 息 的 优 点 是 不 影 响URL 的 显 示, 而 且 允 许 返 回 的 数 据 量 较 大, 缺 点 是 用 户 只 能 使 用< FORM > 语 句 段 让 浏 览 器 生 成 请 求 信 息, 不 能 直 接 在URL 中 输 入。 在POST、PUT、GET 和HEAD 四 种 方 法 中, 除 了POST 方 法 使 用CONTENT 向Web Server 应 用 程 序 传 送 数 据 以 外, 其 它 方 法 都 是 通 过URL 来 传 送 数 据 的。

Delphi 3 中 提 供 了 装 载 浏 览 器 请 求 信 息 的TWebRequest 对 象, 利 用 该 对 象 的methodtype 属 性 即 可 得 知HTTP 传 送 请 求 信 息 的 方 法, 再 利 用 该 对 象 的ContentFields 或QueryFields 属 性 即 可 将HTTP 传 送 的 信 息 进 行 分 析, 非 常 容 易 使 用。 例 如, 对 于CONTENT 中 的 数 据, 我 们 可 直 接 使 用Request.ContentFields.Values[' 用 户 输 入 项 的 名 称'] 来 读 取 用 户 的 输 入 信 息; 而 对 于URL 中 的 数 据, 则 可 直 接 使 用Request.QueryFields.Values[' 用 户 输 入 项 的 名 称'] 来 读 取。

下 面 就 通 过 一 个 简 单 的 例 子 来 介 绍 如 何 开 发 一 个 响 应 用 户 输 入 的 数 据 库 查 询Web Server 程 序

首 先, 在Web 服 务 器 端 安 装 数 据 库 引 擎BDE

并 设 置 好 数 据 库 别 名wsda, 指 向 一 个 包 含 归 档 部 门、 归 档 年 代、 卷 号、 文 件 日 期、 文 件 字 号、 文 件 作 者、 标 题 等 字 段 的 数 据 库 文 件wsdak.dbf。

接 着 建 立 一 个HTML 文 件wsdacx.htm, 放 在Web 服 务 器 的 确 省 目 录 下( 如c:\webshare)

wsdacx.htm 的 内 容 如 下:

< HTML >< HEAD >< TITLE >文书档案查询< /TITLE >

< /HEAD >

< BODY >

< h1 >文书档案查询卡< /h1 >

< HR >

< FORM action="/scripts/wdcx.dll" method=post >

请输入标题关键词:< input type="text"

size="16" Maxlength="16" name="btgjc" >< BR >

< INPUT TYPE=SUBMIT VALUE="查询" >

< INPUT TYPE=RESET VALUE="重填" >

< /FORM >

< HR >

< /BODY >< /HTML >

( 在 本 例HTML 的< FORM > 语 句 中, 使 用 的 是POST 方 法

可 改 为 其 他 方 法 而 无 需 修 改 下 面 的ISAPI 源 程 序

为 简 单 计, 本 例 只 列 出 了 一 个 用 户 输 入 项)。

在Delphi 中 新 建 一 个 基 于ISAPI 的Web Server Application, 增 加 一 个 确 省 的 的 动 作 事 件, 其 代 码 如 下:

procedure TWebModule1.WebModule1Web

ActionItem1Action(Sender: TObject;

Request: TWebRequest; Response:

TWebResponse; var Handled: Boolean);

var

MyDB : TDatabase;

MyQuery : TQuery;

Count : Integer;

Input: TStrings;

Begin

Input:=nil;

Case request.methodtype of

mtpost: Input := request.ContentFields;

mtget

mtput

mthead: Input := request.QueryFields;

end;

if input.values['btgjc']< >'' then

begin

MyDB := TDatabase.Create(nil);

MyQuery := TQuery.Create(nil);

try

MyDB.AliasName := 'wsda';

MyDB.DatabaseName := 'wsda';

MyQuery.DatabaseName := MyDB.DatabaseName;

response.content:=

'< HTML >< HEAD >< TITLE >查询结果

< /TITLE >< /HEAD >'#13+

'< BODY >'#13+

'< H2 >< font face="隶书" color="green" >

查询结果信息:< /font >< /H2 >'#13+

'< table border=1 >'#13+

'< tr >'#13+

'< th >卷号< /th >'#13+

'< th >文件日期< /th >'#13+

'< th >文件字号< /th >'#13+

'< th >标题< /th >'#13+

'< tr >'#13; //#13是换行符

Myquery.sql.clear;

Myquery.sql.add('select * from wsdak.dbf '+

'where (标题 like "%'+input.values['btgjc']+'%")');

Myquery.open;

Myquery.first;

Count:= 0;

while not MyQuery.eof do

begin

response.content:=response.content+'< tr >'#13+

'< td >'+MyQuery.FieldByName('卷号')

.AsString+'< /td >'#13+

'< td >'+MyQuery.FieldByName

('文件日期').AsString+'< /td >'#13+

'< td >'+MyQuery.FieldByName('文件字号')

.AsString+'< /td >'#13+

'< td >'+MyQuery.FieldByName

('标题').AsString+'< /td >'#13+

'< tr >'#13;

count:=count+1;

MyQuery.Next;

end;

response.content:=response.content+

'共查询到'+inttostr(count)+'条信息< br >';

finally

response.content:=response.content+'

< /table >< /BODY >< /HTML >';

MyQuery.Close;

MyDB.Close;

MyQuery.Free;

MyDB.Free;

end;

end

else response.content:='请先输入标题关键词:';

end;

需 要 注 意 的 是: 必 须 在 本 单 元 文 件 的uses 子 句 中 手 工 添 加db 与dbtables 单 元。 为 简 单 计, 本 例 并 没 有 使 用TTable、Tquery、Tdatasource、TpageProducer、TqueryProducer 等 组 件, 有 兴 趣 的 读 者 不 妨 一 试。

将project 存 为wdcx.dpr

编 译 后 放 到Web 服 务 器 的 可 执 行 文 件 路 径( 如C:\WebShare\Scripts\), 即 可 响 应HTML 文 件wsdacx.htm 的 用 户 输 入, 并 返 回 数 据 库 查 询 结 果。

以 上 程 序 代 码 在Windows 95B2(OSR) 的 个 人 Web 服 务 器PWS/Windows NT 4.0 的IIS、Microsoft Internet Explorer 4.0、Delphi3 Client/Server 下 调 试 通 过。

App推广的节操呢? iMessage垃圾短信产业链暗访 Apkudo CEO访谈:免费为Android开发者提供测试 Web API核查表:设计、测试、发布API时需思考的43件事 开源Android构建工具Buck 速度超Ant两倍 从史上八大MySQL事故中学到的经验 OpenStack Heat向应用市场更近一步 初创公司Ionic Security:云安全必须与时俱进 谷歌董事长:一年后消费者才能用上Goolge Glass Windows 8.1重新推出的“开始按钮”毫无意义 手眼并用 代码泄露三种Google Glass手势操作 Google新论文 CPI&#178;:基于Linux的世界级跨数据中心服务器CPU监控 20款非常实用的Web工具和资源列表 数据库界大事件 随机写性能巨好的TokuDB开源了 CMDN Club 26期:数字渠道营销主题沙龙 暴强:用iOS设备控制的HTML5“小蜜蜂”游戏 Leap Motion:500元体感,精确到0.01毫米 大事件:三大运营商将发布融合计费SDK 再培养一个扎克伯克:六款适合儿童上手编程的App 首届中国软件工程标准高峰论坛:软件开发的新机遇与挑战 Verizon研究显示:中国成为2012年度网络间谍攻击的主要来源 Clang宣布全面支持C++11标准 北大陈钟:SEMAT—中国软件工程发展的新机遇 超华尔街预期:苹果第二财季营收为436亿美元 跨平台游戏引擎Spaceport已被Facebook收购 文科生开发GPU数据库 性能超传统数据库70倍 开发者赚了90亿:从苹果Q2财报,看iOS生态 备受开发者青睐的13款热门开源项目 Netflix赌赢《纸牌屋》背后的秘密武器:大数据分析 为什么:Google Glass只能运行Web应用? 对话Rackspace高级副总裁Jim Curry:我们没有&amp;quot;辜负&amp;quot;营销炒作 7个大数据流言——避免错误的Hadoop和云分析决策 我现在要开发一个游戏大厅,谁能帮我提供一些技术参数>?在线等待。 不是水贴:请求帮助,有上海师范大学的请进 紧急!那位有clearcase winnt 4.2 的注册码,高分相送!!!!! 论坛的表格要在注意什么?《我是个菜》 大家帮忙介绍一本书 帮帮我怎么把系统还原占用的空间还给我——老鸟们帮忙! 过滤问题:Query需要先选择一个表(通过ComboBox)然后从2个Edit内输入两个条件 关于stringgrid的翻页问题 寻找电脑方面的朋友 大家好,帮忙做做这题 大家如何保存自己地提问?? JTable怎样一行一行地显示? 我的程序 无边框窗口显示问题 求教各位大虾 VB数据库 如何知道某字段有这个姓名记录? 我想学一种C++的集成环境,是C++BUILDER还是VC 我完全没基础,请帮我走出第一步:汇编工具在哪下载?我想试试那个“两只老虎” 如何在还原Cookie中的中文字? 制做彩色立体阴影怎么做啊! 我的程序 请问有没有这样的公司? 2000 server 无法使用ADSL????? 我要和她分手。。。。。。。。 一个不错的网站,进来看一下吧! map 使用的几个小问题 請大家幫我做這個的標準譯文,謝謝!!! 就像做考題一樣,不要只說它在概意思! 新手上路第一问!Hello World都不能运行 这样的SQL语句怎样转化成能在mysql下运行的 学汇编,应用在什么地方?单从功能来说,汇编强大还是C++强大 replace语句的使用方法: 一个不错的网站,进来看一下吧! 关于软加密的问题???? 请高手,两个简单的问题?在线等待???急急!!! 关于ADOQuery1.refresh的问题 我的程序 一个不错的网站,进来看一下吧! 求DELPHI开发ACTIVEX用于WEB打印指定内容的实现说明。 dreamweaver中的一个小问题,,,急!急!急! 我的程序 100分求救啊!使用TEvent对象要包含什么头文件啊? 如何使SYNTAXFROMSQL不从RDBMS中的extended attribute system tables中获取数据 一个不错的网站,进来看一下吧! 几个菜鸟问题 求教:如何配准图形和图象 如果不会C语言,也不会汇编语言,那么学C++困难还是学汇编困难 请各位帮忙超简单,散分! 向往技术的高手请进!能否用DoEvents 实现多线程呢? 谁有DATALIST分页控件,说明如何使用! 怎样用VB读取98系统当前的硬件配置??求助!!!! 您好,我想问一下,D选项所指的溶液只是氢氧化钙溶液吗?为什么不是氢氧化钙和碳酸钾溶液之和啊?如果D选项只考虑氢氧化钙溶液那B选项为什么要考虑2个溶液的质量呢、?19、下列各组中的物 寻找一种白色的粉末,可能是有机物来的!1.这粉末能较好溶于水,在水中时会漂浮在水面(摸起来有软软粘粘的).2.冲水时有泡沫产生,但不多,PH值可能偏碱性(但不确定).3.本人猜测这可能是 但是一定要准确,别随便复制一段资料! 几种常见动物毛皮的鉴别 为什么冬瓜表面会有一层白色的粉末 1988年中共中央和国务院决定建立的经济特区 如下图,两个正方形拼在一起,求图中阴影部分的面积 焊件超声波探伤需焊接48小时后吗? 1980年,中央和国务院决定在哪设置经济特区 分度盘的分度精度和重复精度的单位是什么?如问题补充所示,40”的40后面单位是什么? 两个正电荷和一个负电荷之间的电场线两个正电荷紧挨着,在一个正电荷旁边不远处有一负电荷,三个电荷带电量相等,请问这三个电荷间的电场线如何画?望各位不吝赐教! 君子喻于义 小人喻于利是什么意思? 加工中心数控分度盘首次使用没松开分度盘就回零了,以后会影响分度的精度吗 化学选择题,关于氧化还原反应的.在线等拜托各位了 3Q 雅阁玻璃水能加几升雅阁车玻璃水能加几升,买几升的玻璃水比较适用. FeS+HNO3反应会生成S沉淀吗?生成物是什么?(正确式子加配平) 含最高价元素的化合物,一定具有强氧化性吗? 有水解程度达50%以上的盐吗? 为什么说电子发生了转移?要理由! 硝酸钾的钾是氧化钾 13,14,15,16题, 用5个正方形拼搭而成的物体,从正面看到的是“竖着的两个正方形”,有几种不同的搭法?(画图) 电场线始于正电荷,止于负电荷……电场线始于正电荷,止于负电荷.是单纯只方向问题,还是真的事实.比如一个正电荷被负电荷所组成的球面围住了.那么这个正电荷的电场能不能影响到负电荷 15 16 17题, "碘酸钾"是不是"碘"? 为什么电场线总是始于正电荷,终止于负电荷?请说明理由 我有标答,要的是思路或过程,例四我有标答,要的是思路或过程, 例四 高一化学氧化还原反应一节!含氮废水进入水体对环境造成的污染越来越严重,某课外兴趣小组先测定某废水中含硝酸根离子的离子浓度是3*10的负四次方摩尔每升,而后用金属铝将硝酸根还原为 碘伏可以和酒精掺在一起吗记得在医院打针医生会在皮肤上涂碘酒,那么碘酒是不是究竟和碘伏的混合物?还是有专门的碘酒? 请问不同品牌的玻璃水能混用吗? 在处理的废水过程中为什么突然会变成黄色 硝酸钾含100mg氮的意思是?怎么计算? 17.设A={1,a\1,ab},B={0,1,a}.若A=B,则a=_____,b=____17.设A={1,a\1,ab},B={0,1,a}.若A=B,则a=_____,b=_____. 印染废水中的黄色怎样去除?我正在做一个污水处理系统,现在的情况是COD已经到了60左右,但是色度还得100多,水呈那种淡黄色,原水是印染废水和发电厂的水,COD1200左右,颜色有时是蓝的,有时是 任何一个碳原子都只连1个氢原子和3个碳原子这是什么有机物 1:如果a 科学兴趣小组在调查一化工厂时,发现有个车间排出的废水澄清透明,呈黄色.为测定该废水中所含的物质,他们进行如下实验(假设能发生的反应均恰好完全反应):(1)用pH试纸测试,测得pH 我的世界最新版本是多少?我看到有1.8的,不知道是不是最新的,还有我看视频上有的版本材料做得略微好看些是怎么回事?小地图是怎么来的? A+B=15 B+C=16 A+C=17ABC各=几 想带孩子去和外面多接触一下~想去一个干净,卫生的环境.给我推荐下 初三化学兴趣小组在调查一化工厂是,发现有个车间排出的废水澄清透明呈蓝色兴趣小组在调查一化工厂是,发现有个车间排出的废水澄清透明呈蓝色为测定该废水中所含的物质,他们进行如下 BASO3是不是沉淀物 常用的金属抛光膏有哪几种? 某校化学兴趣小组对附近一化工厂排出的污水进行监测.发现污水中含某些金属离子对水质和环境造成了严重污染.他们曾对该厂排出的污水取样、过滤,对滤液进行了多次检测,其中有三次检测 solidworks钣金零件中要焊接一根管子,管子是焊接在板材中的,不是焊接在表面,想知道3维展开图怎么画? 水溶液在加热时PH值变小的是...答案是氯化钠 可是为什么呢?加热电离强,c(H+)↑ c(OH-)↑ 所以PH↓ 那么盐酸呢? 玉米芽怎么生 solidworks焊件库怎么没有h型钢 绣眉注意事项有哪些? 怎样做玉米芽率 黑洞和白洞是不是物质 zn(no3)2会和什么反应生成气体 外伤用碘伏好还是酒精外伤口消毒用哪个好? 一辆汽车从甲地开往乙地,已经行了120千米,相当于全程的60%.这辆车离乙地有多少千米? 晚上,好端端放在地板上空暖瓶,突然爆炸,暖瓶是老式的铁皮暖瓶.请专家解释. 皮带是什么带动 www.vkeke.com为什么打不开了 如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)*0.3048.现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸.输入格式:输入 材料一中涉及的通商口岸与经济特区在分布上有何相似之处 请问BASO3可以怎样制得我不知道BASO3是什么反应的产物.这种沉淀怎么来的啊 日媒:五艘中国军舰穿过日本冲绳本岛与韩媒称韩高官暗示将引进美国“萨德”反奥斯卡影后赞与查尔斯王子跳舞比“亲热韩国法院:研究低估三星芯片厂对人体的马达加斯加总统选举开始 或有望解决该美研究称已婚者比单身汉更长寿 但容易男子用数百公斤大南瓜造船 划水距离创韩国前科技官员称福岛土壤污染可通过微俄外交官被指在美国招募间谍 美联邦调外交部:中印重申双方不将其军事能力用日民主党前干事长年内成立新团体 被疑日本拟在多个城市开设赌场 年收入可达美国十岁男孩弑父案即将宣判 孩子去处贝卢斯科尼女友否认系同性恋 索赔千万杭州市市管领导干部任前公示通告俄外交官被指在美国招募间谍 美联邦调法国研究员:想象力丰富者比较能拒绝眼韩军警在韩日争议岛演练登陆 旨在抵御伊核问题引美以分歧 美同意合法保留以贝卢斯科尼女友否认系同性恋 索赔千万法德寻求与美就窃听丑闻展开对话战争带给美国人民的创伤依然持续着武汉严查清明期间公车扫墓专业技能测试加学业水平成绩介绍当KTV小姐 乘机对少女施暴叔嫂不伦之恋 女方意外身亡扫墓老夫妻欲买“活人墓”被拒攻占行政院总指挥魏扬 外曾祖父系杨逵墓地现创意墓志铭普京将自己工资转入受美制裁银行哑炮被引燃 炸伤三小孩广告:颠覆!惊艳!CHiQ电视:让想30万市民冒雨扫墓专科生需求逾五成月薪涨至2308元“壁虎大盗”十堰落网违法变道是事故主因楚天都市报讯 □戎国强刘蕙瑕再揽双冠图文:慈爱双亲接力捐肾 再给儿子一次图文:军校志愿者修家电手到擒来服刑儿录制视频送到老父病榻前广告:百合红娘·务实·诚信品牌婚介
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘