如何将ASP中的参数传给AcitveForm?(十万火急!不能再等了!)(100分)

  • 主题发起人 主题发起人 zldove
  • 开始时间 开始时间
Z

zldove

Unregistered / Unconfirmed
GUEST, unregistred user!
我想用ASP来调用ActiveForm来发布数据,后台数据库是Oracle7.也就是用
ActiveForm来显示和修改查询结果.我用的是DCOMConnection连接.可是我不知
道ASP中的查询参数能否直接传给服务器端.恳请诸位大虾帮我想想办法!
 
首先要清楚:asp在服务器端运行,activexform在客户端运行。
你既然用了DComConnection,那就可以直接通过ClientDataset提交查询,用不着asp提交。
 
首先你必须在ActiveForm中添加属性,然后在asp中设置此属性值即可。
 
gaolang说的对,先增加一个属性值,在asp中,可以直接调用
<object xxx=564647575
object/>
<%
value=xxx.youporperty
%>
 
To:GaoLang,LiuZhw
請問在Asp中如何調用ActiveForm的屬性對其賦值(別&amp;shy;見笑,沒用過Asp,但現在需將多個
ActiveForm集成,所以也遇到同樣的問題,全局變量如何在不同ActiveForm中傳遞,至今仍讓
我頭痛,望兩位高手指教,隨便說一句:沒有家檔了,下次給補上,先謝了)

 
在activex中建立一个新的属性你应该会,下面是调用的一个例子
<HTML>
<OBJECT
id="lzw"
classid="clsid:4CBED165-6924-11D4-B41A-0050BAE1465C"
codebase="http://172.16.10.3:8081/lzw/helloProj1.ocx#version=1,0,0,0"
width=1
height=1
align=center
hspace=0
vspace=0
>
</OBJECT>
<SCRIPT language="VBScript">
Sub some_name
lzw.filet("e:/joke.doc")
End Sub
</Script>
<input type=button value=开始 onclick=some_name>
</HTML>
 
liuzhw说得对,先给activex一个id,然后执行id.属性=xx即可
 
To:liuzhw
&amp;shy;首先謝謝你的指教,但我按以下作法卻仍無法將參數傳入ActiveForm中,如有不當請多指教!
在ActiveForm中利用Type Library定義一個BSTR,Read/Write類型的Property(test),
在unit中產生兩個方法Get_Test()和Set_Test(),我在單元的Private中定義String類型的變
量test,下面是這兩個方法的實作代碼:
function TafModule.Get_Test: WideString;
begin
result:=Test;
end;
procedure TafModule.Set_Test(const Value: WideString);
begin
Test:=Value;
end;
我在FrontPage中按照你給我的腳本代碼改寫如下:
"
<HTML>
<Body BgColor="#AAAAAA">
<OBJECT
ID="MsCode"
classid="clsid:4FEF9E70-A34D-11D4-88EB-0000210015E1"
codebase="http://gfc0220/MD52Scripts/afp_module.ocx#version=1,0,45,0"
width=767
height=530
align=center
hspace=0
vspace=0
>
</OBJECT>
<SCRIPT language="VBScript">
sub some_name
MsCode.set_test("LiJiYu")
end sub
</Script>
<input type=button value=開始 onclick=some_name>
</Body>
</HTML>
"
在FrontPage中瀏覽出現"物件不支持該屬性或方法:MsCode.Set_Test()"
以上錯誤,急盼幫忙解決!
 
属性和方法不是这么加的
在打开工程后,在菜单中,选中 view|type library
这是有一个xxxxx.tlb的form出现,在第一个(有一个红的放大镜图标)中增加你的方法。
 
为了感谢liuzhw 对我的大力帮助,我先给您送上50分.但是,我对这个问题还是不能明白.
你给的示例我无法运行.还望liuzhw 能给进一步详解一下.小弟感激不尽!
 
网上有李维的书下载吗(delphi5)?
 
要在vb中访问activex的内容,实际是通过com接口来实现的 ,所以在html中的vbscript
中写的就是一般的对com借口访问,关键是要在activex中增加你所要的方法和属性,但是
不能直接加,而是要通过interface来增加,即先在interface中声明,然后在activex中
实现这个声明,你现在没有成功,在浏览器端我估计没有问题,而是在activex中你的方法
和属性没有处理好。
 
liyu的调用方法不对,应该是调用mscode.test=xx即可
如果你在vi中编辑,输入mscode.以后,会提示activeform
的所有属性和方法,如果找不到test,说明你没有正确添加
属性。
 
To:liuzhw
非常感謝你對我的幫助,ASP與ActiveForm之間傳值問題已解決,但我想如果在ActiveForm
之間直接傳值,這樣將許多ActiveForm集成在一起就方便多了.望賜教!(說話算話:問題解決
后雙手送上100分,只是目前手頭較緊張!)
 
to liyu
其实在activex之间传值的方法已经解决,因为vb中的变量可以得到com对象中的属性值,
那么com对象也一样可以访问其他com的属性值。
 
To LiuZhw:
謝謝你的解釋,如果利用ASP在各ActiveForm中傳值,可能會沒問題(正在測試).我查看了
ActiveForm的Type Library檔案,它并未為該ActiveForm(Com物件)定義Create或
CreateRemote方法,但我寫的MTS物件(Com)在其Type Library中卻有這兩個方法的宣告,因此
在物件之件可實現通信.但ActiveForm之件的通信確實令我頭痛,能否祥細告之其相互通信的
方法(最好有代碼),先謝了!
 
to liyu
我想是这样,mts是提供com服务的,所以为了让别的程序调用他,必须提供这两个方法,
对于activex也就是ocx,其实我认为不是真正的com对象,他是不能提供服务的,相反
他是服务的发出者,所以想要象mts或word这种真正的com对象那样是不行的,liyu兄你
以为呢?
 
To:liuzhw
我通過對ActiveForm及MTS的Type Library對比了一下,其實它們沒有什么區別,MTS組件只
是在其類中宣告了并實作了Create,CreateRemote這兩個方法,而在ActiveForm中其類沒有宣
告這兩個方法,這大概正如你所說他們服務的性質不同罷了,但我認為在ActiveForm的接口中
通過類來宣告并實作這兩過方法應該沒有問題,但只是沒有意義罷了.
 
创建ActiveForm时选择 Make Control License,Delphi会生成一个.LIC文件,发布时
加上它,ActiveForm一定会自动注册

 
多人接受答案了。
 
后退
顶部