请会DELPHI与ASP的朋友帮我看看这个利用DELPHI实现ASP编程的小问题

dzogchen 2002-04-09 11:44:48
library pmyaspobject;

{%File 'myasp.asp'}

uses
ComServ,
pmyaspobject_TLB in 'pmyaspobject_TLB.pas',
aspobject in 'aspobject.pas' {myaspobject: CoClass};

exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer;

{$R *.TLB}

{$R *.RES}

begin
end.
******************************************************************
myasp.asp
<HTML>
<BODY>
<TITLE> 这是一个用delphi建立的asp对象 </TITLE>
<CENTER>
<H3> 你填的内容如下</H3>
</CENTER>
<HR>
<%
var myasp;
myasp=server.createobject(pmyaspobject.myaspobject);
myasp.myasprequest();
%>
<HR>
</BODY>
</HTML>
************************************************************************
unit aspobject;

{$WARN SYMBOL_PLATFORM OFF}

interface

uses
ComObj, ActiveX, AspTlb, pmyaspobject_TLB, StdVcl;

type
Tmyaspobject = class(TASPObject, Imyaspobject)
protected
procedure OnEndPage; safecall;
procedure OnStartPage(const AScriptingContext: IUnknown); safecall;
procedure myasprequest; safecall;
end;

implementation

uses ComServ;

procedure Tmyaspobject.OnEndPage;
begin
inherited OnEndPage;
end;

procedure Tmyaspobject.OnStartPage(const AScriptingContext: IUnknown);
begin
inherited OnStartPage(AScriptingContext);
end;

procedure Tmyaspobject.myasprequest;
begin
response.write('<p>您的姓名是:');
response.write(request.form.item['name']);
response.write('</p>');//从所要建立的网页中读出用户名//
response.write('<p>您的工作是:');
response.write(request.form.item['work']);
response.write('</p>');//从所要建立的网页中读出用户工作//
response.write('<p>您用的开发工具:');
if(request.form.item['delphi'].count>0)then
response.write('delphi');
if(request.form.item['bcb'].count>0) then
response.write('c++ builder');//判断用户所用的开发工具//
response.write('</p>');
response.write('<p>您的身份:');
response.write(request.form.item['identity']);
response.write('</p>');//读出用户的身份//
end;

initialization
TAutoObjectFactory.Create(ComServer, Tmyaspobject, Class_myaspobject,
ciMultiInstance, tmApartment);
end.
************************************************************************
myhtm.htm

<form action='myasp.asp' method='post">

  <h1 align='center">请选择</h1>

  <p>姓名:<input type='text' size=33 name="name"></p>

  <p>工作:<input type='text' size=33 name="work"></p>

  <p>开发工具:<input type='checkbox' name='delphi' value="on">delphi

  <input type='checkbox'name='bcb'value="on">c++ builder</p>

  <p>您的身份:</p>

  <p><select name="identity" size="1">

   <option>学生</option>

   <option>技术人员</option>

   </select></p>

  <p><input type="submit" name="mysubmit" value="递交">

  </form>
*******************************************************************
该例子是做一个简单的表单,调用DLL,实现响应。
可是点击mysubmit后myasp.asp运行,表单部分没有体现,
不报错,说明myasp.asp执行无误,可能在调用过程没有实现,以上文件均在同一目录。
请大家帮助。
...全文
50 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
cougar87 2002-06-18
  • 打赏
  • 举报
回复
试试设置你的iis中应用程序保护为:低(iis进程)
dzogchen 2002-04-10
  • 打赏
  • 举报
回复
试过了,不可以。好象问题还是出现在调用DLL的过程中
按照
codewriter(codewriter)的方法,可是对于REQUEST部分不显示
chechy 2002-04-09
  • 打赏
  • 举报
回复
是通过web server访问吗?即:
http://localhost/myasp.asp
千万不能是
file:///c:\myasp.asp
chechy 2002-04-09
  • 打赏
  • 举报
回复
是通过web server访问吗?即:
http://localhost/myasp.asp
千万不能是
file:///c:\myasp.asp
dzogchen 2002-04-09
  • 打赏
  • 举报
回复
我已经按你的办法
<%
dim myasp;
set myasp=server.createobject("pmyaspobject.myaspobject");
myasp.myasprequest();
%>
还是一样
chechy 2002-04-09
  • 打赏
  • 举报
回复
ASP缺省都是是用VB Script写啊。
myasp.asp我认为就这里有错。
李维又不是圣人,只要是人就会犯错。Borland都会犯错,况李维乎?
dzogchen 2002-04-09
  • 打赏
  • 举报
回复
昨天按照李维大人《电子商务》P328的例子做也是错误;谁来救我
dzogchen 2002-04-09
  • 打赏
  • 举报
回复
而且只要myasp.asp中去掉<%
var myasp;
myasp=server.createobject(pmyaspobject.myaspobject);
myasp.myasprequest();
%>
就可以显示myasp.asp;
否则就抱HTTP500的错
dzogchen 2002-04-09
  • 打赏
  • 举报
回复
chechy(我爱洁洁)

DIM是VB的东西吧?
chechy 2002-04-09
  • 打赏
  • 举报
回复
还是有点错误,再改一下:
<%
dim myasp;
set myasp=server.createobject("pmyaspobject.myaspobject");
myasp.myasprequest();
%>
chechy 2002-04-09
  • 打赏
  • 举报
回复
try this:
<%
dim myasp;
set myasp=server.createobject(pmyaspobject.myaspobject);
myasp.myasprequest();
%>
dzogchen 2002-04-09
  • 打赏
  • 举报
回复
再试试
chechy 2002-04-09
  • 打赏
  • 举报
回复
我疏忽了,应该没有分号。
codewriter 2002-04-09
  • 打赏
  • 举报
回复
asp代码的语法就有很大的问题!!!
每行后面不需要分号
<%
dim myasp
set myasp=server.createobject("pmyaspobject.myaspobject")
myasp.myasprequest()
%>
dzogchen 2002-04-09
  • 打赏
  • 举报
回复
我是按照LOCALHOST方式访问的
因为将myasp.asp改为:
<HTML>
<BODY>
<TITLE> 这是一个用delphi建立的asp对象 </TITLE>
<CENTER>
<H3> 你填的内容如下</H3>
</CENTER>
<HR>
<HR>
</BODY>
</HTML>
在LOCALHOST/MYASP.ASP中可以看见页面。一旦改为
<HTML>
<BODY>
<TITLE> 这是一个用delphi建立的asp对象 </TITLE>
<CENTER>
<H3> 你填的内容如下</H3>
</CENTER>
<HR>
<%
var myasp;
myasp=server.createobject(pmyaspobject.myaspobject);
myasp.myasprequest();
%>
<HR>
</BODY>
</HTML>
就报500错误。

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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