[Classic ASP] 레코드셋 가져오기 GetRows()


일반적인 레코드셋 Get

strSQL = "SELECT ID, Name FROM users;"
Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open strSQL, Conn ' 1 call to database
If Not RS.EOF Then ' 1 call to database
    While Not RS.EOF ' n + 1 calls to database
        ID = RS("ID") ' n calls to database
        Name = RS("Name") ' n calls to database
        Response.Write("<p>" & Name & " (" & ID & ")</p>" & vbCrLf)
        RS.MoveNext() ' n calls to database
    Wend
End If
RS.Close()
Set RS = Nothing 

 

GetRows () 사용

strSQL = "SELECT ID, Name FROM users;"
Set objRS = Conn.Execute(strSQL) ' 1 call here
If Not objRS.EOF Then arrRS = objRS.GetRows() ' 2 calls here
Set objRS = Nothing
If IsArray(arrRS) Then
    For i = LBound(arrRS, 2) To UBound(arrRS, 2)
        ID = arrRS(0, i)
        Name = arrRS(1, i)
        Response.Write("<p>" & Name & " (" & ID & ")</p>" & vbCrLf)
    Next
    Erase arrRS
End If 

 

재사용 가능하게 함수로

Function GetRSArray(strSQL)
    Set objRS = Conn.Execute(strSQL)
    If Not objRS.EOF Then arrRS = objRS.GetRows()
    Set objRS = Nothing
    GetRSArray = arrRS
End Function
 
arrRS = GetRSArray("SELECT ID, Name FROM users;")
 
If IsArray(arrRS) Then
    For i = LBound(arrRS, 2) To UBound(arrRS, 2)
        ID = arrRS(0, i)
        Name = arrRS(1, i)
        Response.Write("<p>" & Name & " (" & ID & ")</p>" & vbCrLf)
    Next
    Erase arrRS
End If   
guest
0 Comments
Inline Feedbacks
View all comments