3

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

4

0 回答 0