1 Articles, Search for 'Library'

  1. 2008/09/11 MDB (MS Access DB) 제어 클래스 0.1
Research2008/09/11 13:18



[제작자 : AccessDenied]

1. 제목
    MDB (MS Access DB) 제어 클래스 0.1

2. 형태
    Class

3. 내용
    MDB 파일을 생성하거나 MDB에 접속하여 SQL Query를 실행할 수 있는 클래스 입니다.
리소스 자동 해제 및 exception이 wrapping 되어 있기 때문에 return value 만을 참고하여 error handling이 가능합니다.
또한 유니코드를 지원하도록 제작되었기 때문에 별도의 수정 없이 Windows platform 기반의 Visual Studio project에서 적용 가능합니다.

4. 환경
    OS : Windows 개열
    개발툴 : MFC

5. 사용법
    (1) InitInstance와 같은 시작 부분에 if(FAILED(::CoInitialize(NULL))) { ... } 와 같이 COM을 초기화
    (2) MDB 생성 시 Create("파일이름")
    (3) MDB에 접속 시 Open("파일이름")
    (4) MDB에 접속된 상태에서 Query를 이용한 데이터 편집은 Query("Query String")
    (5) SELECT 쿼리 후 데이터 조회 예시
CMDBManager MDB;
FieldPtr pField;

if(MDB.Open(_T("C:\\1.mdb")) == TRUE)
{
if(MDB.Query(_T("SELECT * FROM Table1")) == TRUE)
{
while(MDB.IsDataAvailable() == TRUE)
{
pField = MDB.FetchField(0);

printf(_T("%d\n"), MDB_FIELD_GET_INTEGER(p));

MDB.NextData();
}
}
}

    (6) 클래스 기능 모음

// 해당 Field가 NULL인지 체크
MDB_MANAGER_IS_FIELD_NULL(pField)
// 해당 Field 값을 LPCSTR 형태로 추출
MDB_MANAGER_FIELD_GET_LPCSTR(pField)
// 해당 Field 값을 Integer 형태로 추출
MDB_MANAGER_FIELD_GET_INTEGER(pField)
// 해당 Field 값을 Float 형태로 추출
MDB_MANAGER_FIELD_GET_FLOAT(pField)

// 새로운 MDB 파일 생성
BOOL Create(LPCTSTR pszFileName);
// MDB 파일 접속
BOOL Open(LPCTSTR pszFileName);
// MDB 파일 접속 해제
BOOL Close();
// SQL Query
BOOL Query(LPCSTR pszQuery);
// SELECT 와 같은 Query 후 데이터가 남아 있는지 확인
BOOL IsDataAvailable();
// 다음 데이터로 이동
BOOL NextData();
// nColIndex번째 column data를 얻어옴
FieldPtr FetchField(int nColIndex);
// 해당 nColIndex field가 NULL인지 체크
BOOL IsFieldNull(int nColIndex);
// MDB에 접속되어 있는지 확인
BOOL IsConnected();
// Recordset를 얻어옴
const _RecordsetPtr GetRecords();
// 구해진 데이터의 Field 개수를 얻어옴
long GetFieldCount();
// 해당 Field의 타입을 얻어옴
MDB_MANAGER_FIELD_TYPE GetFieldType(FieldPtr pField);

6. 기타
    GetFieldType()의 경우 현재까지 얻어온 데이터를 추측하여 값을 결정하기 때문에 정확하지 않을 수 있음.
Posted by Getroot

Leave your greetings.