我尝试将一些从DataBase中获取的数据存储在ADODB.Connection对象中,以便稍后在程序中使用该对象。问题是最近该对象有一些字段值为"没有"但是使用的查询会填充所有字段。
我有一个函数可以检索我需要的信息,然后将结果设置为我稍后使用的对象。
Dim recordSet As Object
recordSet = Server.CreateObject("ADODB.RecordSet")
recordSet = functionThatReturnsAObject()
'Later I access to the values of the object
当我使用时:
recordSet.GetRows()
数组的某些值返回Nothing。
但如果我这样做:
functionThatReturnsAObject().GetRows
它返回包含它的所有字段的值。
我使用的功能是这样的:
Private Function functionThatReturnsAObject() As Object
Dim anotherRecordSet As Object = Server.CreateObject("ADODB.RecordSet")
Dim sqlCommand As Object = Server.CreateObject("ADODB.Command")
Dim bdConnection As Object = CreateObject("ADODB.Connection")
bdConnection.Open(GlobalVar)
sqlCommand.ActiveConnection = bdConnection
sqlCommand.CommandText = "SELECT 'HERE_GOES_THE_QUERY'"
sqlCommand.CommandType = 1
sqlCommand.Prepared = True
With sqlCommand.Parameters
.Append(sqlCommand.CreateParameter("param", 200, 1, 10, value))
'More parameters come here
End With
anotherRecordSet = sqlCommand.Execute
Return anotherRecordSet
End Function
我不确定它是否与查询的列数相关(超过70)。但是当我尝试将返回功能的值分配给稍后需要使用的对象时,问题就来了。或者也许是因为我使用.Execute而不是.Open?