-
rs.open 뒤에 나오는 인자값들Full-Stack/Back-end 2008. 3. 22. 15:30
sql="SELECT top 5 * FROM admin_notice where O_OKTYPE = '1' ORDER BY UID desc"
5개 뽑아오는 쿼리문은 일단 맞습니다.(단 ms-sql일경우)
rs.open 뒤에 나오는 인자값들에 대해 설명드릴께요
rs.Open sql, db [,커서타입,Lock타입,옵션]
첫번째는 SQL문이나 저장프로시저를 사용해도 됩니다.
두번째는 Connection객체를 씁니다.
세번째부터는 생략 가능합니다. 세번째는 커서타입(ADO상수)입니다.
0 <adOpenForwardOnly>: 레코드를 앞으로 이동시키면서 순차적으로 한번만 읽음
1 <adOpenKeyset> : 레코드를 자유로이이동-레코드갱신-다른사용자가추가한내용열람불가
2 <adOpenDynamic> : 레코드를 자유로이이동-레코드갱신-다른사용자가 작업한 모든내용 열람가능
3 <adOpenStatic> : 레코드를 자유로이이동-레코드갱신불가-단지 데이타를 가져오는데 유용
네번째는 Lock타입입니다.
adLockReadOnly : 레코드는 읽을수만 있읍니다.
adLockPessimistic : 각 레코드는 한번밖에 갱신안됩니다.
adLockOptimistic : 각 레코드는 한번이상 갱신가능하나 Update메서드를 실행하면 갱신안됩니다.
adLockBatchOptimistic : 갱신모드로 들어가면 작업가능
다섯번쨰는 옵션입니다.
adCmdText : 첫번째가 SQL문을 실행함을 지정
adCmdStoredProc : 첫번째가 저장프로시저를 사용함을 지정
adCmdTable : 첫번째가 테이블을 가져오는것임을 지정
<%
Set Rs=Server.CreateObject("ADODB.RecordSet")
sql="SELECT top 5 * FROM admin_notice where O_OKTYPE = '1' ORDER BY UID desc"
Rs.Open sql, db, 1, 1
t_subject=rs("O_SUBJECT")
%>
<!----------------------------------------------------------------------------->
<%=t_subject%>
제가 asp가 처음이라 이해가안가는부분이있는데요
Rs.Open sql, db, 1, 1 이부분 설명좀해주세요.
그리고 이렇게해놓으면 가장 최근꺼하나만 나오는데 5개가 다 나오게하려면 어떻게하죠?
님이 작성하신 위에 글 중에서 5개 다 뿌려주실려면 반복문을 돌려야합니다.
소스를 수정한다면 이렇게 할수 있습니다.
<%
Set Rs=Server.CreateObject("ADODB.RecordSet")
sql="SELECT top 5 * FROM admin_notice where O_OKTYPE = '1' ORDER BY UID desc"
Rs.Open sql, db, 0, 1
if rs.eof then
response.write "자료가 하나도 없음"
else
do until rs.eof
t_subject=rs("O_SUBJECT")
%>
<%=t_subject%>
<%
rs.movenext
loop
end if
%>
이런식으로 반복문을 돌리면 처음부터 끝까지 돌면서 해당 레코드를 뿌려줍니다.
댓글