我正在使用redim保留来存储对象,但是发生错误。 在我需要使用的代码部分中,程序中断了。
function get_info(ByRef a_array_of_objects )
'ReDim Preserve a_array_of_opbjects ( 5 ) if i put here the redim
'preserve it works but i don`t need here
Set conexion = Server.CreateObject("ADODB.Connection")
set comando =Server.CreateObject("ADODB.Command")
conexion.open "DSN=mydsn;server=myserver;uid=myUser;pwd=mypass"
comando.ActiveConnection=conexion
comando.CommandText="MY_STORE_PROCEDURE"
comando.CommandType=4
comando.Parameters.Append objComm1.CreateParameter("p_parameter",3,1,100,10)
set v_local=comando.Execute
v_local_array=v_local.GetRows
ReDim Preserve a_array_of_objects ( ubound(v_local_array,2) ) ' i need
'here the redim preserve code but it breaks
' the index is out of range is the error
for i=0 to UBound(v_local_array,2)
set o_object=new c_object
o_object.let_property=v_local_array(0,i)
o_object.let_property1=v_local_array(1,i)
a_array_of_objects(i)=o_object
next
function_that_clean_parameters(comando)
conexion.close
'ReDim Preserve a_array_of_objects ( 10) here the code don`t works also
end function
我希望得到对象的修复,但会收到错误消息 如果有人可以帮助我。 对不起,我的英语。
答案 0 :(得分:0)
您正在尝试通过引用传递数组。如果阵列已锁定,则将无法使用ReDim
。您将需要按值传递它:
function get_info(ByVal a_array_of_objects)
之所以能够在函数开始时ReDim
放置数组,是因为您拼错了它:
a_array_of_o p 对象
您正在创建一个新数组,而不是对传递的数组进行重新调暗。
此外,您的函数实际上没有返回任何内容,请在函数末尾确保包括:
get_info = a_array_of_objects