ASP中就可以直接用,而做成组件就不行了?
在ASP中可以直接使用:Execute "a=7-3+5" 来运行自己的代码,可是我用VB来做组件时就提示:编译错误,用户定义类型未定义!
Private Application As Application
Private Session As Session
Private Request As Request
Private Response As Response
Private Server As Server
Private Execute As Execute
Public Sub OnStartPage(PassedScriptingContext As ScriptingContext)
Dim SQLstr As String, i As Long
Set SC = PassedScriptingContext
Set Application = SC.Application
Set Request = SC.Request
Set Response = SC.Response
Set Server = SC.Server
Set Session = SC.Session
Set Execute = SC.Execute
End Sub
Response什么的都能用,就是Execute不能使用!怎么办啊???
问题点数:20、回复次数:12Top
1 楼online(龙卷风V4.0--决战江湖(MS MVP-VB))回复于 2004-09-03 18:50:25 得分 0
这样的吧
myserver.Execute ""
下面两句代码提示中就没有,所以编译错误,用户定义类型未定义!
Private Execute As Execute
Set Execute = SC.ExecuteTop
2 楼jdler(闲人)回复于 2004-09-03 19:00:08 得分 0
Public cn As New ADODB.Connection
Public rsTable As ADODB.Recordset
Public rs As ADODB.Recordset
Private Application As Application
Private Session As Session
Private Request As Request
Private Response As Response
Private Server As Server
Public Sub OnStartPage(PassedScriptingContext As ScriptingContext)
Dim SQLstr As String, i As Long
Set SC = PassedScriptingContext
Set Application = SC.Application
Set Request = SC.Request
Set Response = SC.Response
Set Server = SC.Server
Set Session = SC.Session
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
End Sub
Public Function Test() As String
myserver.Execute "Response.Write 111"
End Function
ASP内容
<%
Set s1 = Server.CreateObject("SvrL1.MainClass")
s1.Test
%>
照错不误!Top
3 楼online(龙卷风V4.0--决战江湖(MS MVP-VB))回复于 2004-09-03 19:16:56 得分 0
能否给我贴一段Execute "a=7-3+5" ,可以运行的ASP的代码?
这样可以执行
Public Sub ShowCounter()
myServer.Execute "fc1.asp"
End SubTop
4 楼jdler(闲人)回复于 2004-09-03 19:37:09 得分 0
在ASP中直接这样用:
<%
Execute "a=7-3+5"
%>
其中执行语句可以是多行。Top
5 楼online(龙卷风V4.0--决战江湖(MS MVP-VB))回复于 2004-09-03 20:05:00 得分 0
<%
Execute "a=7-3+5"
%>
这样可以执行,但是看不到结果,不知怎么输出到浏览器?Top
6 楼yonghengdizhen(等季节一过,繁花就凋落)回复于 2004-09-04 12:21:31 得分 0
<%
Execute "a=7-3+5"
Response.Write a
%>
ie中看到的结果为9
Top
7 楼jdler(闲人)回复于 2004-09-04 20:04:33 得分 0
在ASP中直接这样用:
<%
Execute "a=7-3+5" & Chr$(13) & Chr$(10) & "Response.Write a"
%>
这个语句可以很自由。可是就是没法在组件里用。
Top
8 楼online(龙卷风V4.0--决战江湖(MS MVP-VB))回复于 2004-09-04 21:57:28 得分 5
可能用不成
参考这种写法
http://community.csdn.net/Expert/topic/3231/3231596.xml?temp=.7471887
Top
9 楼jdler(闲人)回复于 2004-09-05 18:35:13 得分 0
可是为什么我在工程中引用了ADO以后可以DIM XXX AS NEW ADODB。****
而引用了asp.dll后却无法使用NEW呢?Top
10 楼yonghengdizhen(等季节一过,繁花就凋落)回复于 2004-09-07 13:44:12 得分 0
asp.dll是你组件的运行环境.
所有的实例都已经在运行中.
不需要人为的去new asp内置支持的任何对象.而只需要获得已运行实例的接口
Top
11 楼yonghengdizhen(等季节一过,繁花就凋落)回复于 2004-09-07 13:45:56 得分 15
Execute方法是VBScript脚本引擎支持的方法,所以如果你要用execute不是去引用asp.dll而是VBS脚本引擎.Top
12 楼officecn(Hotdog)回复于 2004-09-13 10:46:13 得分 0
我记得有资料曾经介绍过,如果你编译的组件是为ASP调用的,建议你把所有的参数类型设置为Variant,一般就不会有问题了。Top




