【发布时间】:2011-06-01 08:01:38
【问题描述】:
我正在尝试修复 ASP Classic 应用程序,当我尝试从 Recordset 对象创建数组时。但是我无法让它正常工作。
这段代码给了我一条记录(最后一条),但据我所知,它是正确的:
Dim Products
Dim Products_cmd
Dim Products_numRows
Set Products_cmd = Server.CreateObject ("ADODB.Command")
Products_cmd.ActiveConnection = Conn
Products_cmd.CommandText = "SELECT prod_id, prod_description FROM dbo.products ORDER BY prod_description ASC"
Products_cmd.Prepared = true
Set Products = Products_cmd.Execute
Products_numRows = 0
Dim arrProducts()
arrProducts = Products.GetRows()
使用此代码给我一个“下标超出范围:'UBound'
Dim Products
Dim Products_cmd
Dim Products_numRows
Set Products_cmd = Server.CreateObject ("ADODB.Command")
Products_cmd.ActiveConnection = Conn
Products_cmd.CommandText = "SELECT prod_id, prod_description FROM dbo.products ORDER BY prod_description ASC"
Products_cmd.Prepared = true
Set Products = Products_cmd.Execute
Products_numRows = 0
Dim arrProducts()
Dim counter
For counter = 0 to Products.RecordCount - 1
ReDim Preserve arrProducts(counter,2)
arrProducts(counter,0) = Products.Fields.Item("prod_id").Value
arrProducts(counter,1) = Products.Fields.Item("prod_description").Value
Products.MoveNext
Next
Response.Write(Str(UBound(arrProducts)))
任何想法都将不胜感激......
【问题讨论】:
标签: vbscript asp-classic ado