DLL中的多个数组如何传递到ASP中?
数据表中有 id, name, price等多个字段,这里按照3个字段举例
我在vb中写了以下这个SUB
Public SUB pro()
Dim id() As Variant, sname() As Variant, price() As Variant
此处搜索数据库得出多条记录。掠过代码
i = 0
Do While Not rs.EOF And (i < rs.pagesize)
i = i + 1
ReDim Preserve id(i), sname(i), price(i)
id(i) = rs( "id ")
Response.Write rs( "id ") & " <br> "
sname(i) = rs( "name ")
price(i) = rs( "price ")
rs.MoveNext
Loop
rs.Close
end sub
然后ASP直接调用
classname.pro
response.write id(1)
能看到程序中 Response.Write rs( "id ") & " <br> " 这句执行了,列出了所有ID。所以应该没问题的。
可是执行到response.write id(1)就出错了。证明ID()这个数组变量没传递出DLL。
但是以上代码如全部在ASP中执行是没问题的。在DLL里就不能传出来了。
请教该怎么写才能获得数组的数据?
别说单个数组的那种,那种我会。现在是多个数组的值传出的问题。
并且不知道这种写法的性能如何?以及有没更好的写法也行。只要能把结果集传出ASP。
[解决办法]
dll内的变量只在DLL内可以传递。要在ASP中使用,只能用返回值的方式。
[解决办法]
private aryA() as variant
public property get A() as variant()
A = aryA
end property
public function funA()
......
......
aryA() = RS.GetRows(lngN) 'RS: recordset
......
......
end function