PROGRAMMING/Ξ MFC \ C++
[MFC] 기초
SUPERMANGS
2010. 3. 15. 21:17
다음에는 레코드셋 타입이 함께 나옵니다. 레코드셋이란 무엇일까요? 한마디로 SELECT해서 나온 결과들의 집합입니다. 다시 설명하겠지만 데이터베이스 관련 클래스는 연결과 데이터의 조작을 담당하는 클래스, 그리고 결과 집합을 관리하는 레코드셋 클래스로 나뉩니다. 다음의 메뉴는 그러한 결과 집합의 타입을 묻는 것이죠. Snapshot, Dynaset, Table 등 세 가지가 있는데 각각 살펴볼까요?
◆ Snapshot : 변경되지 않는 데이터를 볼 때 스냅샷을 이용합니다. 또한 DAO에서 스냅샷은 항상 읽기 전용입니다. 스냅샷으로 열었다면 절대 수정할 수 없습니다. ODBC라면 사용되는 드라이버에 따라 업데이트가 가능합니다.
◆ Dyanaset : 스냅샷과 반대의 개념입니다. 다른 사용자가 레코드, 즉 데이터베이스를 업데이트하면 즉시 읽고 있는 다른 사용자에게 알려줍니다. 그러나 누군가가 새로이 내용을 추가했다면 다시 질의(SELECT)할 때까지 변경사항을 볼 수 없습니다.
◆ Table : 레코드셋의 결과가 데이터베이스 내의 테이블 하나일 때(바로 지금과 같은 상황) 사용합니다. 다이나셋과 역할은 같지만 조금 더 빠릅니다. 하지만 실제 물리적인 테이블 하나이므로 레코드셋이 뷰(View)거나 저장 프로시저를 참조한다면 허용되지 않습니다.
◆ Snapshot : 변경되지 않는 데이터를 볼 때 스냅샷을 이용합니다. 또한 DAO에서 스냅샷은 항상 읽기 전용입니다. 스냅샷으로 열었다면 절대 수정할 수 없습니다. ODBC라면 사용되는 드라이버에 따라 업데이트가 가능합니다.
◆ Dyanaset : 스냅샷과 반대의 개념입니다. 다른 사용자가 레코드, 즉 데이터베이스를 업데이트하면 즉시 읽고 있는 다른 사용자에게 알려줍니다. 그러나 누군가가 새로이 내용을 추가했다면 다시 질의(SELECT)할 때까지 변경사항을 볼 수 없습니다.
◆ Table : 레코드셋의 결과가 데이터베이스 내의 테이블 하나일 때(바로 지금과 같은 상황) 사용합니다. 다이나셋과 역할은 같지만 조금 더 빠릅니다. 하지만 실제 물리적인 테이블 하나이므로 레코드셋이 뷰(View)거나 저장 프로시저를 참조한다면 허용되지 않습니다.