본문 바로가기

Development/MFC

MDB를 연결해서 사용해보자

#include <afxdb.h> // CDatabase, CRecordset 선언된 헤더

AfxOleInit(); // VC++6 에서는 꼭 해줘야 했는데, VS2010 안해도 되었음.

try
 {
   CString strConnection(L"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=kListDB.mdb;UID=/*ID*/;PWD=/*암호*/");
   // ID, 암호 없으면 입력 안함
   CDatabase db;
   if (db.OpenEx (strConnection/*, CDatabase::noOdbcDialog*/) == FALSE)
      throw _T("데이터베이스 접속실패!");
 
   ///////----- 쿼리문
   CString strQuery = _T("select * from ListTable");
   CRecordset rs (&db); // 질의한 레코드
   if (rs.Open (CRecordset::dynaset, strQuery) == FALSE)
      throw _T("쿼리전송 실패!");
 
   while (rs.IsEOF() == FALSE)
   {
     CString strUser;
     rs.GetFieldValue (L"Code"/*필드명*/, strUser);
     CString strPwd;
     rs.GetFieldValue (L"CompanyName", strPwd);
     AfxMessageBox(strUser + L" : " + strPwd);
     rs.MoveNext();
   }
   /////////-----
 }
 catch (CException * e)
 {
   e->ReportError();
   e->Delete();
 }
 catch (LPCTSTR msg)
 {
  AfxMessageBox (msg);
 }
---------------------------------------------------

삽입, 삭제인 경우 쿼리문을 바꾼다.
CString strQuery = _T("INSERT INTO ListTable (Code, CompanyName) VALUES ('000002', 'ABCDEFG')");
db.ExecuteSQL(strQuery); 
와 같이 한다.


출처 : http://goo.gl/gp3lZ