[책펌] MS-SQL의 SELECT문 예제

By | 7월 18, 2008

<%
Set ConnDB = Server.CreateObject("ADODB.Connection")
ConnDB.Open = "DSN=bruce;UID=bruce;PWD=1111"

strSQL = "SELECT * FROM tblMember"
Set objRs = ConnDB.Execute(strSQL)

Do While objRs.EOF = False
 Response.Write objRs("name") & " "
 Response.Write objRs("email") & "<br>"
 objRs.MoveNext
Loop

objRs.Close
ConnDB.Close
Set objRs = Nothing
Set ConnDB = Nothing
%>

### 참고 : EOF와 BOF 에 관하여 ###
### 출처 : http://blog.naver.com/kkkangse/50003057225 ###


 if objRs.eof or objRs.bof then '데이터가 존재하지 않음

BOF와 EOF는 각각 레코드셋의 처음 부분과 끝부분을 가리키는 말입니다.

--- DB에서 레코드를 불러왔을시 ---

레코드를 가리키는 포인터는 레코드의 첫번째 부분을 가리키며
(BOF 부분이 아닌 BOF바로 앞의 레코드)
BOF와 EOF는 False 상태가 됩니다.

--- DB에서 불러온 레코드가 없을시 ---

레코드를 가리키는 포인터는 BOF와 EOF를 가리키게 되어 둘의 속성이 True상태로 됩니다.

Or연산자는 알고 계시다 시피 어느 한쪽의 값이 만족한다 입니다.
데이터 베이스에서 레코드를 가지고 왔다면 BOF와 EOF 둘다 False상태가 됩니다.

if rs.BOF = true Or rs.EOF = true then

그렇기 때문에 위에 문장이 가능합니다.
BOF가 됐듯 EOF가 됐든 어짜피 레코드를 가지고 왔으면 둘다 False가 되고,
레코드를 못가져 오면 둘다 True가 되기 때문이죠..
또 하나라도 True라는것은 레코드를 못가져 왔다는 이야기겠죠..
레코드를 가지고 왔으면 둘다 False,
레코드를 가지고 오지 못하면 둘다 True이니
하나라도 True면 레코드를 못가져 왔다는 이야기 겠죠..

 

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments