Web Server的新手。(300分)

  • 主题发起人 主题发起人 程云
  • 开始时间 开始时间
用delphi作核心的查询,效果很好
具体实现如下:
用frontpage作一个<form></form>.,用来设定条件
用户提交后 用以下语句读取:
Str_xmbh:=request.ContentFields.Values['xmbh'];
Str_hth:=request.ContentFields.Values['hth'];
Str_xmmc:=request.ContentFields.Values['xmmc'];
Str_fzr:=request.ContentFields.Values['fzr'];
Str_op1:=request.ContentFields.Values['op1'];
Str_qsny:=request.ContentFields.Values['qsny'];
Str_qsny1:=request.ContentFields.Values['qsny1'];
sTR_OP2 :=request.ContentFields.Values ['op2'];
Str_qsny2:=request.ContentFields.Values['qsny2'];
Str_zzny:=request.ContentFields.Values['zzny'];
Str_zzny1:=request.ContentFields.Values['zzny1'];
Str_zzny2:=request.ContentFields.Values['zzny2'];

然后根据读取得信息生成 Sql 语句(这不用多说了吧)
生成SQl以后:
adoquery2.SQL.Clear ;
adoquery2.SQL.Add (str_Sql);
adoquery2.Active :=true;
if adoquery2.Recordset.EOF and adoquery2.Recordset.BOF then
begin
response.Content:='没有记录' ;
end
else
begin
response.Content :=response.Content +'本次查询共查到'+ inttostr(adoquery2.Recordset.RecordCount) +'条记录';
RESPONSE.Content :=RESPONSE.Content +'<table border="1" width="100%">';
adoquery2.Recordset.MoveFirst;
while not adoquery2.Eof do
begin
RESPONSE.Content :=RESPONSE.Content+'<TR>';
//开始循环写入表格
for i:=0 to adoquery2.Recordset.Fields.Count-1 do
begin

//如果值为空则指出此值为空
if i=1 then
begin

if ADOQUERY2.Fields.IsNull then
RESPONSE.Content:=RESPONSE.Content+'<TD><A HREF="/QUERY/project.exe/DETAILS?id='+ adoquery2.Recordset.Fields[0].Value +'">' + '空值--' +'</A></TD>'
else
RESPONSE.Content:=RESPONSE.Content+'<TD><A HREF="/QUERY/project.exe/DETAILS?id='+ adoquery2.Recordset.Fields[0].Value +'">' + ADOQUERY2.Recordset.Fields[1].Value +'</A></TD>';

end
else if i=5 then
begin
if ADOQUERY2.Fields.IsNull then
RESPONSE.Content:=RESPONSE.Content+'<TD>' + '空值--' +'</TD>'
else
RESPONSE.Content:=RESPONSE.Content+'<TD>' + floattostr(ADOQUERY2.Recordset.Fields.Value) +'</TD>';
end
else
if ADOQUERY2.Fields.IsNull then
RESPONSE.Content:=RESPONSE.Content+'<TD>' + '空值--' +'</TD>'
else
response.Content:=RESPONSE.Content+'<TD>' + ADOQUERY2.Recordset.Fields.Value +'</TD>';

end;
RESPONSE.Content :=RESPONSE.Content+'</TR>' ;
adoquery2.Next ;

end;
RESPONSE.Content :=RESPONSE.Content+'</TABLE>' ;
end;
adoquery2.Active :=false;
handled:=true;
end;
搞定 ,又方便,又安全,又快捷。

 
如果以Delphi编写的ActiveX组件作为查询的核心,就不应该在Delphi里写与界面相关的代码,
试想如果要改变网页的界面布局,你还要改Delphi程序的源代码,然后重新编译,在发布到
IIS之前还要先停止相关组件的服务才行,如果网站属于需要经常改动界面的那种,那麻烦
可就大了。因此我认为,界面与业务逻辑一定要分开处理,尽量不要在Delphi程序中写界面
相关的代码,所有界面相关的东西都让ASP去负责。
 
多谢大家的帮忙,从中我是大有收获,

由其感谢Soul,专门给我培训了两个小时。

过几天我就把分分了。
 
感谢大家的帮忙,我已基本掌握了Web Sever的编写技巧了,

这分数就均分了好了,我另外还有几个问题

希望大伙儿能多多帮忙,由其是下面这个问题

有关挣钱的软件项目讨论(欢迎一块来探讨一下)。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=694425
 
特别感谢bedlang与dv500两位富翁的帮助,

从中爱益非浅。[:)]
 
后退
顶部