MoveNext를 활용하는데, 그 사용법에 대해 자세히 몰라서 질문 올립니다.
제가 하고자 하는 건..
MoveNext를 여러번 활용하는 건데요.
예를 들어. 레코드셋을 obRs로 만든다 치면.
obRs.MoveNext
이렇게 쓰잖아요.
근데, 이 MoveNext를 여러번 쓸수가 없는 거 같네요.
제가 사용해 본 결과 한번에 세번 이상은 못쓰는가봐요.
그러니까
obRs.MoveNext obRs.MoveNext obRs.MoveNext
이렇게까지는 에러가 안나는데,
obRs.MoveNext obRs.MoveNext obRs.MoveNext obRs.MoveNext
이렇게 4번부터는 문장의 끝이 필요하다는 에러가 나네요.
3번 이상 사용하려면 어떻게 해야 할까요?
예를 들면 obRs.MoveNext(4) <-이런식으로 사용할 수 있는 거라면 좋을텐데
해보니, 이런 문법은 없는가보네요.
until문을 활용하려니, 제가 그 문법을 잘 몰라서요.
MoveNext의 자세한 활용법 부탁드립니다.
참고로 10번까지 사용해야 해요.
(질문)
(대답)
레코드셋 이동 명령은
movenext는 1단계
여러개의 레코드를 넘어가려면
move명령을 쓰셔야 합니다.
10번이면
obRs.Move(10)
을 쓰시면 가능하겠죠.
(다른대답)
결론을 말씀드리면 조건내와 레코드 카운터 내에서 사용이 가능합니다.
do utile obRs.eof '--조건0
if not obRs.eof then '--조건1
obRs.moveNext
end if
if not obRs.eof then '--조건2
obRs.moveNext
end if
obRs.moveNext '--조건3
loop
do 문은 obRs.eof(조건0) 가 되기까지 수행합니다.
이때 moveNext는 더이상 수행되지 않습니다.
do 문안에서 조건0 일때까지는 조건1과 조건2가 수행되는데,
조건1에 만족할 경우 즉, 수행할 레코드가 있으면 moveNext가 수행되어 다음 레코드로 넘어갑니다.
조건2에 만족할 경우에도 수행할 레코드가 있으면 moveNext가 수행되어 다음 레코드로 넘어갑니다.
조건3에서 레코드가 없으면 do until에 의해서 do 문이 끝납니다.
잘 이해가 안가시면 쿼리에 top 3을 걸어서 레코드셋으로 테스트를 해 보시면 알 수 있습니다.
moveNext를 주로 수동 이동시킬 경우는 데이터를 한개가 아니고,
두개이상을 일정한 간격으로 보여줄때 주로 쓰입니다.
간단한 ASp코드 입니다
<% If rs.eof Or rs.bof then%>
<h1><%=searchstring%>으로 검색된 결과가 없습니다</h1>
<%
Else
rs.movelast
recordcnt=rs.recordcount
rs.movefirst
totalpage=rs.pagecount
rs.absolutepage=page
%>
궁금한점이 색깔로 칠해 놓은 부분인데여,,
왜 movelast 와 movefisrt 를 써서 변수 정의를 하였는지 궁금 합니다 (질문)
(대답)
rs.movelast는 래코드 포인터를 제일 마지막으로 이동 하는 레코드셋의 메소드 입니다
rs.movefirst는 래코드 포인터를 제일 처음으로 이동 하는 레코드셋의 메소드 입니다
아마 제 생각엔 작성 하신 분께서 맨뒤로 가서 레코드 카운트를 세고
맨앞으로 가서 페이지 카운트를 셀려고 하신것 같은데요....
결론은 굳이 저런 식으로 쓸필요가 없습니다
recordcnt=rs.recordcount
totalpage=rs.pagecount
이렇게만 써두 결과는 같기 때문입니다.
댓글 없음:
댓글 쓰기