我写了一个往数据库插入一条记录的组件,但是在通过ASP页面调用组件大方法时,报类型不匹配的错.以下是组件:Public Sub IntShow(name As String,sex as String,age as integer)
Dim conn As New ADODB.Connection
Dim str, sql As String
With conn
.ConnectionString = "Provider=SQLOLEDB;Data Source=lhm;Initial Catalog=test;User Id=sa;PassWord=" .Open
.Execute "insert into employee(name,sex,age) values('" & name & "','" & sex & "'," & age & ")"
'conn.Execute sql
End With
End Sub下面是ASP的调用方法:
name=request("tname")
sex=request("tsex")
age=request("tage")
response.write name & sex & age
set st=Server.CreateObject("DBInsert.InsertTest")
st.IntShow name,sex,age页面报错提示:
Microsoft VBScript 运行时错误 错误 '800a000d' 类型不匹配: 'IntShow' /dbshow2.asp,行8
Dim conn As New ADODB.Connection
Dim str, sql As String
With conn
.ConnectionString = "Provider=SQLOLEDB;Data Source=lhm;Initial Catalog=test;User Id=sa;PassWord=" .Open
.Execute "insert into employee(name,sex,age) values('" & name & "','" & sex & "'," & age & ")"
'conn.Execute sql
End With
End Sub下面是ASP的调用方法:
name=request("tname")
sex=request("tsex")
age=request("tage")
response.write name & sex & age
set st=Server.CreateObject("DBInsert.InsertTest")
st.IntShow name,sex,age页面报错提示:
Microsoft VBScript 运行时错误 错误 '800a000d' 类型不匹配: 'IntShow' /dbshow2.asp,行8
应该是IntShow方法的参数不是automation所支持的,如ULONG之类的,要想组件能被脚本语言调用,1.必须用IDispatch接口,2.接口上的参数必须为automation所支持的.建议参数name,sex,age全改为VARIANT,保证能行