Проблема многомерного массива - PullRequest
1 голос
/ 28 июня 2011

Я хочу создать многомерный массив с 2 столбцами и иметь размер строки в виде динамического значения.Затем я хочу заполнить многомерный массив значениями из двух разных SQL-запросов (Microsoft).

Проблема в том, что при загрузке страницы она кажется пустой.Как заполнить каждый столбец двумя разными наборами записей?

Или

Как минимум вернуть общее количество строк в наборе записей?

Код ниже -

 connectionstring = obj_ADO.getconnectionstring
    Set objCon = CreateObject("ADODB.Connection")
    Set objRS = CreateObject("ADODB.Recordset")
    set objComm = CreateObject("ADODB.Command")
    objCon.Open connectionstring

    objComm.ActiveConnection = objCon.ConnectionString
    objComm.CommandText = "A_Page_Paging"
    objComm.CommandType = adCmdStoredProc

    Set objParameter = objComm.CreateParameter
    objParameter.Name = "selected_Char"
    objParameter.Type = adChar
    objParameter.Direction = adParamInput
    objParameter.Size = 3
    objParameter.Value = Selected_Button
    objComm.Parameters.Append objParameter

    set objRS = objComm.Execute

    Increment = 0
    Dim testArray()
    while not objRS.EOF      

    Redim testArray(2, increment)
 '--------------------------------------------

                    Page_ID = objRS("P_PageID")
                    connectionstring = obj_ADO.getconnectionstring

                    Set objConn = CreateObject("ADODB.Connection")
                    Set objRSS = CreateObject("ADODB.Recordset")
                    objConn.Open connectionstring

                    SQL = "Select P_Name as P_Name, P_Description as P_Description from L_PagePermission inner join A_Permission on p_permissionID = pp_PermissionID inner join A_Page on P_PageID = PP_PageID where P_PageID =" & Page_ID & " order by p_Name"                          
                    objRSS.open SQL, objConn


                    if not objRSS.EOF then                                            
                        objRSS.MoveFirst
                        while not objRSS.EOF

                        'Fill Array
                        testArray(0, increment) = objRS("P_PageID")

                        objRSS.MoveNext
                    wend

                    objRSS.close
                    objConn.close

                    else
                        testArray(0, increment) = "-"              
                    end if     

                    Increment = Increment + 1                                   
                '--------------------------------------------                                       
                    %>                      

        <%
            objRS.MoveNext
            wend

            objRS.Close
            objCon.Close  


            response.Write testArray(0,5)

Ответы [ 2 ]

1 голос
/ 28 июня 2011

Сам разобрался с помощью preseve в редиме моего массива, поэтому код ниже решил мою проблему -

'--------------------------------------------   
        Increment = 0
        Dim testArray()                  
        connectionstring = obj_ADO.getconnectionstring


        Set objConn = CreateObject("ADODB.Connection")
        Set objRSS = CreateObject("ADODB.Recordset")
        objConn.Open connectionstring

        SQL = "select * from a_permission inner join L_PagePermission on P_PermissionID = PP_PermissionID inner join A_Page on P_PageID = PP_PageID order by P_Name"                          
        objRSS.open SQL, objConn


        if not objRSS.EOF then                                            
            objRSS.MoveFirst
            while not objRSS.EOF

            Redim Preserve testArray(2, increment)              
            'Two Dimensional Array
            testArray(0, increment) = objRSS("P_PageID")
            testArray(1, increment) = objRSS("P_Name")

            objRSS.MoveNext
            Increment = Increment + 1    
        wend

        objRSS.close
        objConn.close

        else
            testArray(0, increment) = "-"
            testArray(1, increment) = "-"            
        end if     

    '--------------------------------------------       



                '--------------------------------------------
                    Page_ID = objRS("P_PageID")

                    for i = 0 to (increment - 1)
                        if testArray(0, i) = Page_ID then
                     %>                    
                        <li style="" ="padding:0;margin:0;"><%=testArray(1,i)%></li>
                    <%

                        end if

                    next

                '--------------------------------------------  
0 голосов
/ 28 июня 2011

Если вы выполняете этот запрос, возвращаются ли строки?

Select P_Name as P_Name, P_Description as P_Description from L_PagePermission inner join A_Permission on p_permissionID = pp_PermissionID inner join A_Page on P_PageID = PP_PageID where P_PageID =" & Page_ID & " order by p_Name
...