我写了一个往数据库插入一条记录的组件,但是在通过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 

解决方案 »

  1.   

    那就是类型不匹配罗,调试的时候输出SQL语句,在SQL Query analyzer 执行一下不就知道什么原因了么。
      

  2.   

    此类型不匹配非数据库数据类型不匹配,因为报错是说的VBScript 运行时错误,所以不能照楼上所说。
    应该是IntShow方法的参数不是automation所支持的,如ULONG之类的,要想组件能被脚本语言调用,1.必须用IDispatch接口,2.接口上的参数必须为automation所支持的.建议参数name,sex,age全改为VARIANT,保证能行