【求助】如何实现Delphi与Asp之间的变量互传?

suihu 2005-05-08 05:43:01

  请问各位高手们,Asp中创建的变量,在Delphi中怎么样为其赋值呢?

  反过来,Delphi中创建的变量,在Asp中怎么样又怎么样为其赋值???

  请各位大哥大姐们帮忙呀...

  比如下面的asp代码,用Dim定义的变量,假如在Delphi中怎么为其赋值?

<%
Dim SelCountRs,SelCountSQL,NewAccessCount,UpdateCount

Set SelCountRs=Server.CreateObject("ADODB.RecordSet")
SelCountSQL="Select * From AccessCount Where administrator='admin' "
SelCountRs.Open SelCountSQL,Conn,1,1
NewAccessCount=SelCountRs("AccessCount")+1 '取得登陆本站的总人数
UpdateCount="Update AccessCount Set AccessCount="&NewAccessCount&" Where administrator='admin'"
Conn.execute(UpdateCount)

Dim isLoginRs,isLoginSQL,LoginCount
Set isLoginRs=Server.CreateObject("ADODB.RecordSet")
isLoginSQL="Select Count(isLogin) as LoginCount From Dv_User Where isLogin=true"
isLoginRs.Open isLoginSQL,ConnShop,1,1
LoginCount=isLoginRs("LoginCount")
%>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="20" align="center">本站总访问量: <%=NewAccessCount%> 人次 ┋


当前有 <%=LoginCount%> 人在线</td>
</tr>
</table>
...全文
111 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
neo40 2005-05-12
  • 打赏
  • 举报
回复
新建一个WEB SERVER APPLICATION

,然后选择第一个“ISAPI/NSAPI动态连接库”,这样会生成一个WEBMODULE。在这个WEBMODULE里添加两

个数据库组件ADOCONNECTION和ADODATASET,以便以后使用数据库的时候来调用他们。

在WEBMODULE空白处双击,出现Editing WEBMODULE1.Actions,然后再创建你的动态页面,一个ACTIONS就

是一个页面。

ACTIONS的属性中DEFAULT是本程序的默认首页,即http://127.0.0.1/project1.dll直接可以访问的页面

。PATHINFO属性是当前页的目录,如果PATHINFO=MYWEB,即http://127.0.0.1/project1.dll/MYWEB直接

访问该页面。

在ACTIONS的ONACTION事件中,request和response相当于ASP中的request和response。Handled为是否激

活该页。

在ONACTION事件中添加

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
page:tstringlist;
begin
page:=tstringlist.Create ;

try
with page do
begin
add('<html>');
add('<head>');
add('<title>web application web server--简单ISAPI实例</title>');
add('</head>');
add('<body>');
add('<b>这是由DELPHI创建的动态网页</b><p>');
add('<hr>');
add('开来DELPHI下的创建动态网页很简单');
add('<a href="project1.dll/second?abc=10">abc</a>');
add('</body>');
add('</html>');
end;
response.Content :=page.Text ;
finally
page.Free ;
end;
handled:=true;
end;

下面创建第二个ACTIONS,PATHINFO设置为SECOND,并且在ONACTION事件里添加下面代码

procedure TWebModule1.WebModule1WebActionItem2Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
page:tstringlist;
begin
page:=tstringlist.Create ;
try
with page do
begin
add('<html>');
add('<head>');
add('<title>web application web server--简单ISAPI实例</title>');
add('</head>');
add('<body>');
add(Request.QueryFields.Values['abc']);
add('</body>');
add('</html>');
end;
response.Content :=page.Text;
finally
page.Free ;
end;
handled:=true;
end;

这样你就可以看到在使用GET方法传递变量的时候,在DELPHI中是怎么得到的了。abc就是一个变量,可以

用GET方法得到。POST方法同GET方法差不多,将add(Request.QueryFields.Values['abc']);替换成add(R

equest.ContentFields.Values['abc']);就可以得到POST传递过来的变量了。

至于数据库方面,你可以使用读数据库记录的方法来得到数据并且写到网页上。
add(ADODataSet1.FieldByName('LoginCount').AsString);

其他的连接数据库方面参考其他的文章。

在设置IIS的时候需要将执行许可改为“脚本和可执行程序”,这样的话才能运行ISAPI程序。ISAPI是线

程级的,所以不用担心对系统的影响。

注意:在一个ACTIONS执行完以后要释放所有已经创建的对象,否则会造成内存泄露,IIS会当掉的。
suihu 2005-05-12
  • 打赏
  • 举报
回复
能否说的具体点。
thanks...
neo40 2005-05-11
  • 打赏
  • 举报
回复
用ISAPI,通过POST或GET的方法传递数据。
zhouqi724 2005-05-11
  • 打赏
  • 举报
回复
用delphi写组件,你要用到什么,就写几个组件,在几个组件里写方法,然后在asp里调用就可以了

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧