我们有一个使用 VB6 COM 的经典 ASP,如下所示:
Dim Value1
Dim Value2
Dim Value3
'Etc.
Dim VB6COM
Set VB6COM = Server.CreateObject("VB6COM")
VB6COM.GetSomeValues MyConnectionString, "TABLE_NAME", "ROW_ID = 1", _
"FIELD_NAME_1", Value1, _
"FIELD_NAME_2", Value2, _
"FIELD_NAME_3", Value3, ... Etc.
被调用的过程是这样的:
Public Sub GetSomeValues(ConnectionString, TableSource, SearchCondition, ParamArray Fields())
'Code to open the database and retrieve the row goes here.
'For this example to run without a database, we use example values below.
For Index = 0 To UBound(Fields) Step 2
Fields(Index + 1) = "ExampleValue" & Index
Next
End Sub
我们希望停止使用 VB6COM 并将此功能移至 ASP 网站。
所以调用应该删除 Server.CreateObject 行并最终如下所示:
Dim Value1
Dim Value2
Dim Value3
'Etc.
GetSomeValues MyConnectionString, "TABLE_NAME", "ROW_ID = 1", _
"FIELD_NAME_1", Value1, _
"FIELD_NAME_2", Value2, _
"FIELD_NAME_3", Value3, ... Etc.
问题是,VBScript 不支持 ParamArrays。
我知道我们可以将 ParamArray 更改为数组对象。但是由于我们必须更改数千个调用,所以如果有一种方法可以保持原始调用会更好。
有任何想法吗?