ParamArray有问题。这默认是可选的,但似乎并非如此。
我在ASP页面中有以下代码。
dim oUtil, sSQL, oRs, bCARS
Set oUtil = server.CreateObject("CPUtility.Feature")
sSql = "select CARSFlag from Version"
set oRs = oUtil.Execute("", sSql)
然后在我的COM类中,我有以下定义
Public Function Execute(ByVal oDBConnection As Object, ByVal sSQL As String, ByVal ParamArray avParameters() As Object) As ADODB.Recordset
这导致找不到/支持Execute方法的错误。但是,如果我在ASP页面中修改Execute方法以将某些内容传递给ParamArray,那么它的工作正常。
dim oUtil, sSQL, oRs, bCARS
Set oUtil = server.CreateObject("CPUtility.Feature")
sSql = "select CARSFlag from Version WHERE dbLanguage=? AND UtilityUpgrade=?"
set oRs = oUtil.Execute("", sSql, _
Array("lang", adVarchar, adParamInput, 1, "E"), _
Array("bit", adBoolean, adParamInput, 0, 1))
我不明白为什么省略ParamArray参数会导致找不到/支持该方法。
这是使用.NET 4.6.2,并且使用GACUTIL在GAC中注册了类,并且所有条目都已使用REGASM添加到注册表中