달력

52024  이전 다음

  • 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

'asp getrow'에 해당되는 글 1건

  1. 2015.01.02 asp - getRows() 와 nextrecordset()
반응형
/asp getRows 와 nextrecordset

 

※ getrows를 하게 되면 레코드의 커서는 eof 가 된다. 다시 처음 위치로 놓을려면 rs.MoveFirst 해주어야 한다.

 

1. getRows 메소드

  recordSet의 결과를 열,행 의 2차원 배열로 반환한다.

 배열이 생기면 레코드셋은 사용하지 않으므로 nothing~

 

2. nextrecordset 메소드

  쿼리문이 ";" 로 주욱. 연결되어있을때, 그 다음 레코드 셋을 가져오도록 하는 메소드.

  다음 쿼리문만 가져올 수 있고, 한 번 수행된 이전 쿼리문은 접근 불가.

 

 

첫번째 질문은 테이블의 컬럼 명을 확인하고 싶은 신 건가요?

 

그럼 쿼리 분석기에서 다음과 같이 입력하고 실행해 보시면 되실 겁니다.

 

Select * From syscolumns
Where id = (Select id From sysobjects Where xtype = 'U' And name = '테이블명')

 

그리고 컬럼의 단위로 하시고 싶으시다면

그것은 레코드셋 보다는 배열을 이용하시는 것이 더 편하실 겁니다.

레코드셋을 배열로 해 주는 명령은

 

 

 

배열변수 = Rs.GetRows()

위와 같이 배열로 받아서 처리 하시면 됩니다.

 

배열은 2차원 배열로 만들어 지며

1차원값은 원하시는 컬럼 값이고 2차원은 컬럼의 해당하는 값이 들어 갑니다.

즉,

Column 크기는 UBound(배열변수, 1)를 하시면 크기가 나오고

Row 크기는 UBound(배열변수, 2)를 하시면 됩니다.

 

참고로 배열은 0부터 시작하기 때문에 갯수로 크기보다 1이 더 큽니다.

즉,

배열의 크기가 3이라하면

배열변수(0), 배열변수(1), 배열변수(2), 배열변수(3) 까지 총 4개의 배열이 존재하는 거죠

 

ex1)

dim rs : set rs = conn.execute("select * from bbs") '

dim getrowRs : getrowRs = rs.getRows()

response.write ubound(getrowRs, 1) '열 (컬럼)
response.write ubound(getrowRs, 2) '행 (레코드)

 

ex2)

set objrs = server.createobject("adodb.recordset")
objrs.open "select * from bbs", conndb, adopenstatic

dim getrowRs : getrowRs = objrs.getRows()

response.write ubound(getrowRs, 1) '열 (컬럼)
response.write ubound(getrowRs, 2) '행 (레코드)

 

 

[nextrecordset]

 

<%
   ' 쿼리문에 여러 개의 레코드셋을 가져오는 경우도 있으므로
   ' 다음과 같이 모든 레코드를 가져올 수 있도록 처리한다.
   Do Until objRs is Nothing
    intCount = objRs.Fields.Count

    if ( intCount <> 0 ) then
     Response.Write "<TR bgcolor = #efefef height=22>"

     ' 컬럼의 이름을 출력하는 부분
     For intLoop = 0 to intCount - 1
      Response.Write "<TD><b>"
      Response.Write objRs.Fields( intLoop ).Name  ' 컬럼의 이름을 가져온다.
      Response.Write "</b></TD>"
     Next

     Response.Write "</TR>"

     ' 실제 레코드를 출력하는 부분
     Do Until ( objRs.EOF = True )
      Response.Write "<TR bgcolor=white>"

      For intLoop = 0 to intCount - 1
       Response.Write "<TD bgcolor=white>"
       Response.Write objRs( intLoop )
       Response.Write "</TD>"
      Next

      Response.Write "</TR>"
      objRs.MoveNext
     Loop
    end if

    Set objRs = objRs.NextRecordSet
   Loop
%>

http://blog.naver.com/mavis5/10081206806

반응형
Posted by 친절한 웬디양~ㅎㅎ
|