일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 일기
- 4000자
- 축구
- date
- 데이터크기
- lfc
- mssql
- 홍보전화
- daily
- 같지않음
- function
- DATALENGTH
- 프리미어리그
- Premier League
- clob
- YNWA
- 18-19 PL
- LiV
- 2018AG
- Brighton and Hove Albion
- diary
- 리버풀
- WHERE조건
- 물류 #WMS #SI
- 1819시즌
- 18-19
- 순위
- Format
- 조건실행
- Liverpool
- Today
- Total
MinBangHome
[VB] BOF, EOF 사용 본문
(VB를 배운적 없는.. 아무것도 모르는 상태에서 AS-IS 파악을 위해 VB 코드를 보면서 내가 이해하기 위해 찾아서 적어봄)
* VB (Visual Basic) 에서 BOF, EOF 이해 및 사용하는 형식
우선 BOF, EOF 란?
- BOF 속성은 현재 레코드 위치가 첫번째 레코드 앞에 있으면 True(-1)를 반환하고, 현재 레코드 위치가 첫번째 레코드 또는 그 뒤에 있으면 False(0)를 반환
- EOF 속성은 현재 레코드 위치가 마지막 레코드 뒤에 있으면 True(-1)를 반환하고, 현재 레코드 위치가 마지막 레코드 또는 그 앞에 있으면 False(0)를 반환
- BOF 또는 EOF 속성이 True이면 현재 레코드는 없음
* Microsoft Learn 참고 : BOF, EOF 속성(ADO) - ActiveX Data Objects (ADO) | Microsoft Learn
즉, BOF : Begin Of File, 레코드셋의 시작 / EOF : End Of File, 레코드셋의 끝 을 의미
이해한 바로는 조회 쿼리를 호출했을 시 리턴되는 데이터가 있는지 확인 시 사용
예제로
If Rs.BOF (or Rs.EOF) Then
... (처리 로직) ...
Else
... (처리 로직) ...
End If
인데, 이는 데이터가 없을 시 If문을 있을 경우 Else를 타도록 분기 처리 함
일하면서 이전 코드를 파악하니, 보통은 Not EOF 구문을 자주 사용함
이는 데이터 조회 후 Loop문(for or do/while) 돌면서 로직 처리할 시 사용하는데, BOF나 EOF의 속성이 True이면 데이터가 Empty 임으로 앞에 Not 붙여 사용
ex)
Str = " SELECT * " _
& " FROM 테이블" _
Rs.Open Str, ......
If Not Rs.EOF Then
... (처리 로직) ...
End If
Rs.Close
If Not Rs.EOF Then 을 보면 데이터가 있을 시 처리하는 분기라고 보면됨.