📄 实例——web服务器应用程序.txt
字号:
1:begin
CaptionStr:='汽车驾校';
QiCheDetailQuery.sql.add('select * from QiChejx where 编号='''
+Request.Query+'''');
end;
2:begin
CaptionStr:='汽车美容';
QiCheDetailQuery.sql.add('select * from QiChemr where 编号='''
+Request.Query+'''');
end;
3:begin
CaptionStr:='汽车维修';
QiCheDetailQuery.sql.add('select * from QiChewx where 编号='''
+Request.Query+'''');
end;
4:begin
CaptionStr:='汽车加油站';
QiCheDetailQuery.sql.add('select * from Jiayouz where 编号='''
+Request.Query+'''');
end;
5:begin
CaptionStr:='汽车租赁';
QiCheDetailQuery.sql.add('select * from QiChezl where 编号='''
+Request.Query+'''');
end;
6:begin
CaptionStr:='汽车市场';
QiCheDetailQuery.sql.add('select * from QiChesc where 编号='''
+Request.Query+'''');
end;
end;
QiCheDetailQuery.open;
response.content:= '<html><body><head<title>'+CaptionStr
+'</title></head>'#13+'<table border><center>'#13;
{信息分成两屏显示,在第一屏中显示三个字段内容,而第二屏是从第四个字段开始显示. 表格显示形式为字段名和字段值,每个字段显示一行,用字段的总数(QiCheDetailQuery.fieldcount)控制循环次数}
for i:=1 to QiCheDetailQuery.fieldcount-3 do
response.content:=response.content+'<tr><td>'+
QiCheDetailQuery.fields[i].fieldname+'</td>'#13+'<td>'+
QiCheDetailQuery.fields[i].asstring+'</td></tr>'#13;
response.content:=response.content+'</center></table><hr>'#13
+'</body></html>'#13;
//最终完成响应客户请求的HTML表格
End;
procedure TQueryWebModule.QueryWebModuleFangWuQueryAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
//房屋信息动作项的事件处理过程,并形成响应客户的Web页面
//并为用户提供房屋的详细信息提供超级链接
var
i:integer;
CaptionStr,colstr1,colstr2,colstr3:string;
begin
i:=0;
//为了减少程序的壅余、对与房屋有关的所有查询都采用同一个查询组件,
//实现动态查询和动态生成响应客户请求的HTML表格
if Request.query='fwz' THEN i:=0;
if Request.query='XZL' THEN i:=1;
FangWuQuery.close;
FangWuQuery.sql.clear;
case i of
0:begin
CaptionStr:='房屋租赁';
FangWuQuery.sql.add('select * from Fwzl where 编号 like '''+'fwz%''');
colstr1:='楼盘名称';
colstr2:='区域';
colstr3:='地址';
end;
1:begin
CaptionStr:='写字楼租赁';
colstr1:='名称';
colstr2:='面积';
colstr3:='地址';
FangWuQuery.sql.add('select * from Xzlz where 编号 like '''+'XZL%''');
end;
end;
FangWuQuery.open;
{形成HTML表的标题和表头信息,在该表中有四列信息,前三列为基本信息,第四列用于形成完成显示详细信息而必须的超级链接和条件,此处的条件是完成查询当前记录的 信息后部分}
Response.content:='<HTML><HEAD><TITLE>房屋信息</TITLE></HEAD><BODY>'#13+
'<H3 ALIGN="CENTER">'+CaptionStr+'</H3>'#13+'<table border>'#13;
Response.content:=Response.content+'<TR BgColor="White"><TH>'+colstr1+
'</TH><TH>'+colstr2+'</TH><TH>'+colstr3+'</TH><TH>其它</TH></TR>';
while not FangWuQuery.EOF do
//当表的记录指针不在末尾时,获取当前表的所有前三个字段,
begin
Response.content:=Response.content+Format('<tr><td>%s</td><td>%s</td>
<td>%s</td><td><a HREF="%S//FWDetailQuery?%s">%s</a></td></tr>'#13,
[FangWuQuery.fields[1].AsString,FangWuQuery.fields[2].AsString,
FangWuQuery.fields[3].AsString,Request.ScriptName,
FangWuQuery.fields[0].AsString,'详细']);
FangWuQuery.Next;
//获取下一个记录
end;
Response.content:=Response.content+'</table></BODY></HTML>'#13;
//最终完成响应客户请求的HTML表格
end;
procedure TQueryWebModule.QueryWebModuleFangWuDetailQueryAction(
Sender: TObject; Request: TWebRequest; Response: TWebResponse;
var Handled: Boolean);
//查询房屋详细信息动作项的事件处理过程,形成响应Web客户的页面
var
i:integer;
CaptionStr:string;
begin
i:=0;
//IF语句根据客户请求参数判别下一步应执行的查询。
if pos('fwz',Request.query)>0 THEN i:=0;
if pos('XZL',Request.query)>0 THEN i:=1;
FangWuDetailQuery.close;
FangWuDetailQuery.SQL.clear;
case i of
0:begin
CaptionStr:='房屋租赁';
FangWuDetailQuery.sql.add('select * from Fwzl where 编号='''
+Request.Query+'''');
end;
1:begin
CaptionStr:='写字楼租赁';
FangWuDetailQuery.sql.add('select * from Xzlz where 编号='''
+Request.Query+'''');
end;
end;
FangWuDetailQuery.open;
response.content:=
'<html><body><head<title>'+CaptionStr+'</title></head>'#13+
'<table border><center>'#13;
{信息分成两屏显示,在第一屏中显示三个字段内容,而第二屏是从第四个字段开始显示.表格显示形式为字段名和字段值,每个字段显示一行,用字段的总数(FangWuDetailQuery.fieldcount)控制循环次数}
for i:=1 to FangWuDetailQuery.fieldcount-3 do
response.content:=response.content+
'<tr><td>'+FangWuDetailQuery.fields[i].fieldname+'</td>'#13+'<td>'+
FangWuDetailQuery.fields[i].asstring+'</td></tr>'#13;
response.content:=response.content+
'</center></table><hr>'#13+'</body></html>'#13;
//最终完成响应客户请求的HTML表格
end;
procedure TQueryWebModule.QueryWebModuleRenCaiDetailQueryAction(
Sender: TObject; Request: TWebRequest; Response: TWebResponse;
var Handled: Boolean);
//人才详细信息查询
var
i:integer;
CaptionStr:string;
begin
i:=0;
//IF语句根据客户请求参数判别下一步应执行的查询。
if pos('Rcz',Request.query)>0 THEN i:=0;
if pos('Qiz',Request.query)>0 THEN i:=1;
if pos('JLZ',Request.query)>0 THEN i:=2;
RenCaiDetailQuery.close;
RenCaiDetailQuery.SQL.clear;
case i of
0:begin
CaptionStr:='人才招聘';
RenCaiDetailQuery.sql.add('select * from RenCaizp where 编号='''+
Request.Query+'''');
end;
1:begin
CaptionStr:='求 职';
RenCaiDetailQuery.sql.add('select * from Qiuzhi where 编号='''
+Request.Query+'''');
end;
2:begin
CaptionStr:='人才交流中心';
RenCaiDetailQuery.sql.add('select * from Jiaoliuzx where 编号='''
+Request.Query+'''');
end;
end;
RenCaiDetailQuery.open;
response.content:= '<html><body><head<title>'+CaptionStr+'</title>
</head>'#13+'<table border><center>'#13;
{信息分成两屏显示,在第一屏中显示三个字段内容,而第二屏是从第四个字段开始显示. 表格显示形式为字段名和字段值,每个字段显示一行,用字段的总数(RenCaiDetailQuery.fieldcount)控制循环次数}
for i:=1 to RenCaiDetailQuery.fieldcount-3 do
response.content:=response.content+ '<tr><td>'
+RenCaiDetailQuery.fields[i].fieldname+'</td>'#13+'<td>'+
RenCaiDetailQuery.fields[i].asstring+'</td></tr>'#13;
response.content:=response.content+'</center>
</table><hr>'#13+'</body></html>'#13;
//最终完成响应客户请求的HTML表格
end;
procedure TQueryWebModule.QueryWebModuleRenCaiQueryAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
//人才简要信息查询动作项的事件处理过程,它形成响应Web客户的页面
//并为用户提供查询人才详细信息的超级链接
var
i:integer;
CaptionStr,colstr1,colstr2,colstr3:string;
begin
i:=0;
//为了减少程序的壅余、精炼程序,对与人才有关的所有查询都采用同一个查询组件
//,实现动态查询和动态生成响应客户请求的HTML表格
if Request.query='Rcz' THEN i:=0;
if Request.query='Qiz' THEN i:=1;
if Request.query='JLZ' THEN i:=2;
RenCaiQuery.close;
RenCaiQuery.sql.clear;
case i of
0:begin
CaptionStr:='人才招聘';
RenCaiQuery.sql.add('select * from RenCaizp where 编号 like '''+'Rcz%''');
colstr1:='招聘单位';
colstr2:='地址';
colstr3:='职位';
end;
1:begin
CaptionStr:='求 职';
colstr1:='姓名';
colstr2:='所在地区';
colstr3:='求职意向';
RenCaiQuery.sql.add('select * from Qiuzhi where 编号 like '''+'Qiz%''');
end;
2:begin
CaptionStr:='人才交流中心';
colstr1:='名称';
colstr2:='地址';
colstr3:='联系人';
RenCaiQuery.sql.add('select * from Jiaoliuzx where 编号 like '''
+'JLZ%''');
end;
end;
RenCaiQuery.open;
{形成HTML表的标题和表头信息,在该表中有四列信息,前三列为基本信息,第四列用于形成完成显示详细信息而必须的超级链接和条件,此处的条件是完成查询当前记录的 //信息后部分}
Response.content:='<HTML><HEAD><TITLE>人才信息</TITLE></HEAD><BODY>'#13+
'<H3 ALIGN="CENTER">'+CaptionStr+'</H3>'#13+'<table border>'#13;
Response.content:=Response.content+'<TR BgColor="White"><TH>'+colstr1+
'</TH><TH>'+colstr2+'</TH><TH>'+colstr3+'</TH><TH>其它</TH></TR>';
while not RenCaiQuery.EOF do
//当表的记录指针不在末尾时,获取当前表的所有前三个字段
begin
Response.content:=Response.content+Format('<tr><td>%s</td>
<td>%s</td><td>%s</td><td><a HREF="%S/RCDetailQuery?%s">
%s</a></td></tr>'#13, [RenCaiQuery.fields[1].AsString
,RenCaiQuery.fields[2].AsString,RenCaiQuery.fields[3].AsString,
Request.ScriptName,RenCaiQuery.fields[0].AsString,'详细']);
RenCaiQuery.Next;
//获取下一个记录
end;
Response.content:=Response.content+'</table></BODY></HTML>'#13;
//最终完成响应客户请求的HTML表格
end;
procedure TQueryWebModule.QueryWebModuleOtherQueryAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
//其它项目简要信息查询
end;
procedure TQueryWebModule.QueryWebModuleOtherDetailQueryAction(
Sender: TObject; Request: TWebRequest; Response: TWebResponse;
var Handled: Boolean);
begin
//其它项目详细信息查询
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -