COM和ParamArray

时间:2017-08-15 14:54:30

标签: vb.net com paramarray

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添加到注册表中

0 个答案:

没有答案