VB写的com+奇怪问题!
我在VB中定义了如下的函数:
Public Function FindMan(tuser As String, tpass As String) As Integer
On Error GoTo xxx
Dim Myconn As New ADODB.Connection
Myconn.Open ConnStr'定义好的连接字符串
Dim Myrs As New ADODB.Recordset
Myrs.Open "select * from user_info where name='" & tuser & "' and password='" & tpass & "'", Myconn, 1, 3
If Myrs.EOF Or Myrs.BOF Then
FindMan = 0
Else
FindMan = 1
End If
Myrs.Close
Set Myrs = Nothing
Myconn.Close
Set Myconn = Nothing
Exit Function
xxx:
FindMan = -1
End Function
在asp中按如下方式调用:
Set MyCheck=Server.CreateObject("Linhoo.Mycom")
dim Myreturn
'tuser和tuser为两个字符串
Myreturn=MyCheck.FindMan(tuser,tpass)
if Myreturn=0 then
Set MyCheck=Nothing
Response.Write Myreturn
else
Set MyCheck=Nothing
Response.Write Myreturn
end if
运行后老提示FindMan类型不匹配,是什么原因?
问题点数:20、回复次数:6Top
1 楼Eagles()回复于 2002-01-15 10:48:53 得分 0
As String改一下.Top
2 楼liuhu_2001(lh)回复于 2002-01-15 13:45:20 得分 0
怎么改呢?
有网友建议将Myreturn=MyCheck.FindMan(tuser,tpass)
改成Myreturn=MyCheck.FindMan(Cstr(tuser),Cstr(tpass))
我试了一下,果然可以调用了!(另外Function那个数据字段name竟是VB保留字,我昏!!)
但我还是不太明白,tuser和tpass是从Request.Form("tuser")和Request.Form("tpass")中得到的,本来就是两个字符串呀?(在asp中这么处理的),为什么调用VB写的com时还需要再用Cstr转换一下? Top
3 楼liuhu_2001(lh)回复于 2002-01-15 13:50:03 得分 0
不知道各位在asp中调用类似函数时,是不是也要先转换一下?Top
4 楼liuhu_2001(lh)回复于 2002-01-15 16:49:23 得分 0
没人在吗?Top
5 楼zhang1976(被大风刮的到处跑)回复于 2002-01-15 17:14:43 得分 20
字符串在传入组件和传出组件是字符串是要经过转化的Top
6 楼liuhu_2001(lh)回复于 2002-01-16 09:26:08 得分 0
原来是这样,谢谢zhang兄了!Top




