Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 구글
- SQL
- LINQ
- 클래스
- It
- 메소드
- jQuery
- JavaScript
- XML
- IT 관련
- asp.net mvc
- 제네릭
- ASP.NET
- Generic
- delegate
- mvc
- iframe
- angularJS
- MSSQL
- cookie
- ADO.NET
- c#
- di
- IT관련
- csv
- Excel
- 디자인패턴
- 동적dom
- Today
- 69
- Total
- 1,439,788
심재운 블로그
ASP - GetRows() 함수로 Recordset (레코드셋) 데이터 가져와서 출력하기 본문
ASP - GetRows() 함수로 Recordset (레코드셋) 데이터 가져와서 출력하기
Classic ASP/VBScript - Getting away from Recordsets, use GetRows()
GetRows () 의 2 차원 배열을 사용하는 것이 왜 훨씬 좋은지 자세히 설명하지는 않겠지만, GetRows ()를 사용하는 것이 훨씬 효율적이라는 것입니다.
아래는 전형적인 레코드셋을 이용하여 가져오는 방법 입니다.
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
아래 코드는 위와 동일한 결과값을 주긴 하지만, 더 빠르고, 효율적인 속도를 제공해 줍니다.
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 함수를 사용했습니다.
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
'닷넷관련 > ASP' 카테고리의 다른 글
asp (active server page) 언어(스크립트언어) 가이드 문서 chm (0) | 2018.12.07 |
---|---|
class asp 의 Parameterized queries 알아보기 (0) | 2017.11.20 |
ASP - GetRows() 함수로 Recordset (레코드셋) 데이터 가져와서 출력하기 (6) | 2017.04.30 |
ASP 웹개발자 네이밍규칙 (0) | 2010.05.15 |
ASP - Stored Procedure 로 참,거짓 반환하기 (0) | 2010.03.18 |
ASP - BASE64 지원 라이브러리 - Base64 Encoding Library 2.04 (2) | 2009.04.28 |
6 Comments
-
wer 2011.04.06 11:10 배열로 넘겼을땐 속도는 빠르겠지만 연관배열이 아니기에 가독성이 열배는 떨어지네요 디버그할때 참 골치아플듯
-
재우니 2011.06.10 01:17 신고 넹...가독성은 떨어지죠..^^
-
hope20603@naver.com 2016.11.10 14:49 컬럼 수가 몇개 안될때 사용하면 좋을 것 같네요 ㅎㅎ
ID = arrRS(0, i) ' 컬럼명
이렇게 주석 처리해두면 어느정도 사용할 만 한거 같슴돠 -
재우니 2016.11.29 23:04 신고 네 ㅎㅎㅎ 가독성이 힘들지만 그래도 속도면에선 좋아요 ㅎㅎ
-
재우니 2017.04.30 18:31 신고 네.. 자주오세용..ㅎㅎ