>>>>>>> 高手莫笑,很弱智ASP页面中VB脚本语法的问题,200分哦

silver 2002-09-05 04:10:22
在ASP页面中,写这么一段VB脚本 ( GetSessionID是obj的方法,参数是一个VARIANT)

set obj=createobject("MyApp.Document")
obj.GetSessionID "12345"

obj可以通过GetSessionID正确的到作为参数的字符串"12345"
但是如果换一种写法如下:

dim SessionID
SessionID = "12345"
set obj=createobject("MyApp.Document")
obj.GetSessionID SessionID

那么可以跟踪到obj中通过GetSessionID得到的是一个空字符串,为什么不是"12345"呢?语法上这么写对吗?
...全文
32 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
万年水母 2002-09-07
  • 打赏
  • 举报
回复
你的参数应该是BSTR
silver 2002-09-07
  • 打赏
  • 举报
回复
楼上的老兄,我用的是VC,应该怎么写啊?
luerdong 2002-09-07
  • 打赏
  • 举报
回复
确认一下是public sub GetSessionID (byval id as string)

然后set obj=server.createobject("MyApp.Document")
silver 2002-09-07
  • 打赏
  • 举报
回复

各位收到代码的老兄,有没有解决这个问题呀
zephyr_zhao 2002-09-06
  • 打赏
  • 举报
回复


  3. 从ASP中调用带参数的类方法和函数时,所有的变量参数一定要用相应的类型转换函数转换后再传入,否则会引起类型不匹配错误,因为VBScript中只有Variant类型,它不能自动转换成其它类型。例如,有如下的函数定义:

  Public Function Fun1(p1 as string,p2 as integer) as integer

  End Function

  在ASP程序中应如下调用:

  <%

   p1=obj.property1 ' Property1 is a string property

   p2=obj.property2 'Property2 is an integer property

   a=obj.Fun1(cstr(p1),cint(p2))

   a=obj.Fun1("aaa",10) ' constant parameter need not be changed

  %>

  而下面的两种写法是错误的:

  <%

   p1=obj.property1 ' Property1 is a string property

   p2=obj.property2 'Property2 is an integer property

   a=obj.Fun1(p1,p2) ' incorrect,p1 and p2 are variant variables

   p1=cstr(p1)

   p2=cint(p2)

   a=obj.Fun1(p1,p2) ' still incorrect

  %>
tongjr 2002-09-06
  • 打赏
  • 举报
回复
dim SessionID
SessionID = "12345"
set obj=createobject("MyApp.Document")
response.write SessionID' 应该是12345吧!?那就要看看你的DLL里的代码啦!
moqijun 2002-09-06
  • 打赏
  • 举报
回复
怎么样编写组件的,有什么要点吗?
ssm1226 2002-09-06
  • 打赏
  • 举报
回复
用法没什么错误,还是看看源码吧

fjian37 2002-09-06
  • 打赏
  • 举报
回复
应该可以得
xjbx 2002-09-06
  • 打赏
  • 举报
回复
你把参数定义成string!(要不你发代码给我看看,xjbnet@163.net)
genuis 2002-09-06
  • 打赏
  • 举报
回复
obj.GetSessionID SessionID&""
zhenhao 2002-09-05
  • 打赏
  • 举报
回复
把变量名改改,是不是冲突了。
zephyr_zhao 2002-09-05
  • 打赏
  • 举报
回复
试试把你的Dll组件里的过程声明为
public sub GetSessionID (byval id as string)
silver 2002-09-05
  • 打赏
  • 举报
回复
谢谢各位!
已经尝试失败的做法:

obj.GetSessionID SessionID
obj.GetSessionID (SessionID)
obj.GetSessionID=SessionID
obj.getsessinID (%sessionID%)
obj.GetSessionID CStr(SessionID)
call obj.GetSessionID(SessionID)

jetplane(喷气飞机): 已发出,请查收!

jetplane 2002-09-05
  • 打赏
  • 举报
回复
把你的Dll组件“MyApp”及“MyApp”的源代码一起发来。我在我这里运行调试一下吧。

Email:threeearth@163.net
fokker 2002-09-05
  • 打赏
  • 举报
回复
call obj.GetSessionID(SessionID)
superdev 2002-09-05
  • 打赏
  • 举报
回复
试一试obj.GetSessionID CStr(SessionID)
tubu 2002-09-05
  • 打赏
  • 举报
回复
obj.getsessinID (%sessionID%)
silver 2002-09-05
  • 打赏
  • 举报
回复
已经尝试失败的做法:

obj.GetSessionID SessionID
obj.GetSessionID (SessionID)
obj.GetSessionID=SessionID

到底应该怎么样传这个参数进去呢
cshadow 2002-09-05
  • 打赏
  • 举报
回复
obj.GetSessionID SessionID
加载更多回复(5)

28,391

社区成员

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

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