티스토리 뷰

프로그래밍/MFC

MFC ODBC

에어버스 2016. 7. 13. 04:28

MFC ODBC

ODBC는 하나의 프로그래밍 인터페이스 (ODBC API)로 여러 종류의 DBMS에 접근할 수 있도록 만든것이다.

그림. ODBC 구조

- 응용 프로그램

ODBC API를 이용해서 작성한 응용 프로그램이다.
응용 프로그램은 ODBC API를 통해 드라이버 관리자와 통신한다. 데이터베이스에 연결할 때는 ODBC API를 사용하지만, 실제 데이터를 다룰때는 SQL을 사용한다.

- 드라이버 관리자

응용 프로그램과 특정 DBMS 드라이버를 매개하는 역활을 한다.
드라이버 관리자의 주된 역활은 응용 프로그램이 요구한 데이터베이스에 접근할 수 있도록 ODBC 드라이버를 로드하고, 응용 프로그램과 동일한 API를 이용하여 드라이버의 함수를 호출하는 것이다.

- 드라이버

ODBC API의 구현을 제공하며 특정 DBMS에 종속적이다.
MS-SQL 과 같이 DBMS가 자체의 엔진을 제공하는 경우, 드라이버는 SQL문을 DBMS에게 전달하기만 한다. 그러나 엑셀 파일과 같이 자체 엔진을 제공하지 않는 경우에는 드라이버가 직접 SQL문을 처리한다.

- 데이터 원본 (Data Source)

ODBC에서 데이터베이스에 접근하기 위해 필요한 정보와 데이터베이스 자체를 총칭하는 용어다.
데이터 원본이 있어야만 ODBC를 이용해서 해당 데이터베이스에 접근할 수 있다.

<PC의 ODBC 구성요소 중 데이터 원본의 종류>

 데이터 원본 종류

 

 특성 

 기계 데이터 원본 

 사용자 DSN

 정보가 레지스트리에 저장,  현재 로그인한  사용자만 접근

 기계 데이터 원본 

 시스템 DSN

 정보가 레지스트리에 저장, 모든 사용자가 접근 

 파일 데이터 원본

 파일 DSN 

 정보가 디스크 파일에 저장, 이 파일을 가진 사용자가 접근 

DSN (Data Source Name)

- 데이터베이스 클래스

CDatabase 클래스
데이터베이스와의 연결을 나타내며, 이 객체를 통해 해당 데이터베이스를 조작할 수 있다. 데이터베이스에 접근 하려면 가장 먼저 CDatabase 객체를 만들어야 한다.

1
2
3
4
5
// 데이터베이스 객체 생성
CDatabase db;
db.OPenEx(...);
...
db.Cloase();
cs

- 레코드셋 클래스

레코드셋 : 데이터 조잔 연산을 통해 얻은 레코드 집합

CRecordSet 클래스
레코드셋을 나타내며, 데이터 추가, 삭제, 갱신 등의 작업을 할 때 핵심적인 역활을 한다. 일반적으로 데이터베이스를 조작할 때는 CDatabase 객체를 먼저 생성하고, 이 객체를 CRecordSet 클래스 생성자에 넘겨주어 CRecordSet 객체를 만든다. 이후 CRecordSet 클래스가 제공하는 다양한 멤버 함수를 통해 데이터를 조작하게 된다.

1
2
3
4
5
6
7
8
9
10
11
// 데이버베이스 객체 생성
CDatabase db;
db.OPenEx(...);
// 레코드셋 객체 생성
CRecordSet rs(&db)
rs.Open();
// 데이터 추가, 삭세, 갱신, 검색...
 
//종료
rs.Close();
db.Cloase();
cs

- 예외 처리 클래스

CDBExeception 클래스는 데이터베이스를 조작할 때 발생하는 오류를 나타낸다.

1
2
3
4
5
6
7
try {
    // 데이터베이스 조작
}
catch (CDBException* e) {
    e->ReposrtError();
    e->Delete();
}
cs

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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