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

利 用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 下 调 试 通 过。

限制数据库记录数-Delphi资料 向数据库发送密码-Delphi资料 一个关于字符串的小问题-Delphi资料 用 QuickReport for Delphi 制作报表 用Delphi 开发数据库程序经验三则 用Delphi 实 现 不 同 数 据 库 系 统 之 间 的 数 据 转 移 用DELPHI本身的控件输出TABLE表数据 用Delphi编程访问SQLServer数据库 用delphi编写医院的复杂报表 用Delphi程序维护Paradox 数据表的索引 用Delphi的InterBase数据库开发C&amp;S应用程序 用Delphi进行数据库之间转换 用Delphi开发“瘦”单机数据库应用系统 用Delphi如何实现VFP中的Cache特性 用Delphi设计数据库应用的几点体会 在我们日常工作中,常会碰到这样一个难题:一大堆-Delphi资料 用DELPHI制作应用软件 用Dephi 程 序 维 护Paradox 数 据 表 的 索 引-Delphi资料 用Dephi程序维护Paradox数据表的索引-Delphi资料 用InstallShield制作数据库应用系统的安装程序-Delphi资料 在BDE中使用ASCII-Delphi资料 在DBMemo中查找文字-Delphi资料 在Delphi 程序中维护DBF 数据库 在Delphi 中 利 用 Tbatch 组 件 完 成 数 据 批 处 理 在Delphi 中使用计算出的字段 在Delphi3 程 序 中自 动 检 测、 建 立 数 据 库 别 名 和 表 格 在Delphi3程序中自动检测、建立数据库别名和表格 在Delphi4 BDE中配置Access数据库 在Delphi5 中修改了Delphi自带的VCL Source文件后怎样重建Delphi的库文 在DELPHI程序中动态设置ODBC数据源 在DELPHI程序中使用ADO对象存取ODBC数据库 本人急求《深度探索C++对象模型》一书完整E版 寻《深度探索C++对象模型》一书完整E版! 想从C++转到DELPHI,请前辈们指点一二 请问那里有.NET基类的详细介绍?提供者给分。 网页上的图片都是怎么切割的? 什么叫hr? 求教组网方案!有实践经验者请进 帮助看看用什么控件比较好。 OLE打开Excel文件的问题 关于c远程调用 这个病毒太狠了! 如何将IE打印功能去掉?禁止别人打印网页? 请教关于TImageList中存储多幅图片的问题 100分赠送 寻架构? 请教高手:如何在VB开发的程序中准确判断用户的可用内存? 用jb怎么在另一个类中控制frame中的一个label的text的实时的变化?多谢 如何制作PB应用程序的安装程序?高分求救。 WinXP里怎样备份norton antivirs的升级数据? 我只是给自己加点分啦 快救救我吧,我的存储过程返回值有问题?? 日文原码想在中文环境中运行可不可能 JBoss高手看过来! 下面的js执行错误,请看看 请教高手:如何当一个程序被反复调用时利用command$? 声明游标时可否用变量? 能不能提供几个漂亮的repeater控件的模版? dbs.Execute "SELECT * INTO 在校学生 FROM [Excel 8.0;DATABASE=" & App.Path & "\MyExcel.xls].[WorkSheet1] "报错,在线等待 有没有什么工具或办法可以将Tc 下的程序移植到linux下运行? 求助! 请教!急! 世间什么才是最珍贵的? 大家來說說2003年版<射雕>的敗筆. 请教:如何在VB开发的程序中判断一个程序在硬盘上的安装路径? 帮忙!谢谢! 此类问题如何查询? 请教个问题:每次启动机器都会打开IE跳到我们这边的一个内部网站去,本来启动就慢----火死了,怎么去掉---在注册表了改么? combo控件问题. 问一个关于刚开机的win.com的问题。请高手帮帮忙呀! dbs.Execute "SELECT * INTO 在校学生 FROM [Excel 8.0;DATABASE=" & App.Path & "\MyExcel.xls].[WorkSheet1] "报错,在线等待 请问我如何在注册网站成功后,在exchange中也建立一个与注册网站时同名的帐号呢? ASP(javascript)自动回复问题?? ★★母亲的生日★★ 哪位有没有用spcomm控件进行串口通讯的例子? 大家帮我看看这是用哪个做的? 关于打印... 两路由器的使用方法比较,哪个好些? 在线求助:有没有改变电脑所连的打印机打印属性方向的API函数?多谢 我要送分 设置ejb的几个接口时,我有点弄不明白 有没有什么办法把ACCESS的表打印出来?格式改变一下? 资治通鉴 魏文侯书 蜜蜂有几只脚 几何图形问题能回答吗? 求资治通鉴白话文版 发我邮箱就行ruifengjingmi@sohu.com 谢谢各位网友老大~ 骆驼的汉语拼音 家兔实验中,增加二氧化碳摄入量后,呼吸有何变化 资治通鉴白话文版本哪个版本的比较好?全套的那种.文白对照的也可以.说清楚点 ,哪个出版社的 鲫鱼的内耳除了听觉以外还有什么作用? 在已经停止分裂的大豆体细胞中,遗传信息在生物大分子之间的传递情况可能是A DNA-RNA的转录过程B RNA-RNA及RNA-DNA选择哪一个?为什么? 求白话文如题! 歇后语用拼音拼出来 膈肌放电中的家兔吸入高浓度二氧化碳后呼吸变慢他的机制是什么? 求两条关于热爱生命的名言, 听觉神经属于内耳吗 细胞分化是遗传变异吗 用一句话概括这段文字的意思 结合水上升,自由水自由水下降,有利抗寒原因是什么? 怎么才能停止细胞的分裂? 一个正常的蜜蜂群体中,有几种不同的蜂?它们各自有什么作用 下列的动物行为中,不属于防御行为的是A. 蝗虫的体色与周围的环境颜色十分相似,有利于隐藏自己B. 乌贼遇到天敌难以脱身时会释放墨汁,趁机逃脱C. 两只蟋蟀争斗中,一只退却逃走D. 野兔发现 怎样去除大理石地面上形成的硝渍? 寡人之于国也 虚词 什么是LDO 请问白色大理石上的茶垢、水渍怎样去除? 指出下列虚词的用法及意义.①以:王好战,请以战喻.以五十步笑百步,则何如.斧斤以时入山林,材木不可胜用也.五亩之宅,树之以桑,五十者可以衣帛矣.谨庠序之教,申之以孝悌之义.②则:河内 LDO的短路电流是什么意思呀,为什么比有效电流还小? 越字的拼音怎么写用拼音把这个字打出来 资治通鉴简介作者,编写时间! 1.下列选项不属于动物行为的是a、小猴走钢丝b、小羊呼吸 2.在甲、乙、丙三支试管中放等量清水,插入相同的枝条,将试管口包严,将甲、乙同时放在阳光下,乙的枝条用塑料包严.丙置于阴暗处, 导电滑线防护板应设置在哪些部位?有哪些安全要求? 《资治通鉴》简介100字左右! 3.下列选项中不属于动物行为的一项是( C )A.猫静伏在老鼠出没的洞口B.变色龙体色由褐色变成绿色C.母兔生下的小兔有黑兔和白兔D.蝙蝠白天栖息于岩壁上 pcb软板电金是否需要导电线 中国哪里有孔雀石 13.以下是利用幼小蝌蚪和甲状腺激素探究甲状腺激素作用的实验设计,不合理的是A.实验组饵料中添加甲状腺激素,对照组不做任何处理B.实验组与对照组应饲喂等量的同种饲料,放在相同的 空气开关老是跳闸,有时跳,有时不跳?通电后只有一个灯泡,没有其他用电器,有时跳,有时不跳. 孔雀石的价值我有一张原产非洲、直径一米的孔雀石圆桌,请问其价值多少? 小蝌蚪什么动物 双梁桥式起重机中是不是检修吊笼和大车导电架二选一就可以,一般选择哪一个 问大家一种蜜蜂黑色的个头特大老爱在木头缝 草堆里的蜜蜂我们这叫葫芦蜂还是什么 他的学名叫什么? 酶、抗体和维生素那个不可以在活细胞内产生? ups旁路开关是什么 什么叫孔雀石?它的出产地的那里?主要用途是干什么的? 火烧孔雀石是不是焦炭还原法? 第四题选什么 试述动脉血压的形成原理及其影响因素 ①tan(π/4+a)=1/2求tan a 的值②(sin2a-2cos^2a)/(1+tan a)的值? 第四题怎么弄?最好写下过程, Very few plants and animals can ___________ heat or cold for a long time. spend catch endure endure 高一数学三角涵数的难题我真的不会做!我好象忘记了这个问题好象是这么说的,告诉了三角形的三边A=什么什么X,B=什么什么X,C=什么什么X,问如果是钝角三角形X的取值范围,如果是锐角三角形X 细胞增殖与分化、癌变过程中遗传信息的表达过程相同吗? 看云识天气第一段压缩为一句话.(25字以内)急 碘不是放射性物质,但是碘131为什么具有放射性?还有一些其他的元素,都没有放射性,但是有的同位素也具有放射性……好奇怪啊我只是一个初中学生,呵呵,对这方面的了解不多…… 北京今天能看到日食吗? 高中英语选择,The Earth's most critically endangered animals and plants _ very rapidly in theThe Earth's most critically endangered animals and plants _ very rapidly in the last ten years.A.have been disappeaeing B.had disappeared 蜜蜂体表有(),可以保护身体,胸部有()对分节的足,()对翅 神州7号的航天飞行员是 谁33燃放人 资治通鉴 魏文侯书和世说新语 陈太丘与友期共同主题是什么? 蜜蜂为什么要酿蜜?蜜是从蜜蜂身上出来的吗? 神舟九号飞船绕地球一周需90分钟,那么地球上的人度过一昼夜,神舟九号飞行员度过了几昼夜? 朴槿惠称决不容忍腐败 要求根除核电腐以色列军方在约旦河西岸射杀一巴勒斯坦《福布斯》主编:普京因在外交发挥关键土耳其欧亚海底铁路隧道运营第一天就突日本一对夫妇因弃婴被捕 交代称已扔掉研究称英国社会阶层八百年来几乎未发生外媒:西班牙家长送小孩学汉语 称就业德国议员差旅费暴涨达688万欧元 媒法国表示希望参与新加坡扩大地铁网络计1990至2010年北半球平均气温或日本自民党大力推动修宪国民公投 拟降新闻集团窃听案冲击传媒司法 陪审团打德媒曝光美国全球监控地图 中国北京上日本一母亲遭高中生儿子殴打数小时后离挪威政府鼓励已婚夫妇每周约会一次 以中国留学生勇救日本小学生 安倍将为其安倍访问土耳其 助日企获福岛核事故后南非20名白人右翼分子因叛国罪获刑 张德江会见印尼人民协商会议主席西达尔德专家:欧元区最大问题在于违反不援助日本海上自卫队一军官因非法使用兴奋剂外观回归保守 魅族新移动电源外观曝光红薯米粥又要颠覆苹果?乐视新品将于10月27驳「银行剩女无人娶」,学做快乐银行女电饭煲蛋糕迭戈-科斯塔出席切尔西商店签售一个更加优质的自己,是从这里开始的!罗启刚讲述ELLE China如何打荷兰vs捷克:斯内德亨特拉尔首发有个股民,2000元炒股竟然赚了50“天下大同”才是大数据的理想归宿教你手绘樱木花道喜欢卖弄的妹子,这下爽了吧!iPhone6、联想S90、美图2拍专栏 | 拥有一支NBA 球队?为什未来女人就这样买衣服了,太赞啦!创意改变生活,全球创客马拉松西安收官产后狂减70斤的经验,老公出差回家吓乘坐火车选座攻略大全,超级实用~大数据——P2P网贷未来的生存之道​婚礼现场小三抢婚,惨遭抛弃后90天怒
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘