3

ParamArray に問題があります。これはデフォルトでOPTIONALになっているはずですが、そうではないようです。

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