반응형

[1] MySQL에서 Database와 사용할 Table을 생성한다. 또는 앞 소스에서 만든 mysql_api_test 테이블을 이용한다.

예) uid, passwd, name, email, address, tel

 

[2] ODBC 설정

1. [제어판] -> [관리도구] -> [데이터 원본 ( ODBC )]를 실행.

2. 사용자 DSN -> 추가 -> MySQL ODBC 5.2 Driver -> 마침

3. Connector/ODBC 다이얼로그에서 다음을 입력한다.

Data Source Name: MyTest_ODBC

TCP/IP Server: localhost

User: root

Password: ****

Database: test (데이터베이스 선택)

4. 테스트를 하고 완료버튼을 누른다.

 

[3] MFC Dialog 환경에서 클래스를 추가 합니다. Add -> Class

 

2) ATL(ATL Object)-> ATL OLEDB Consumer를 선택하고 [Add] 버튼 클릭

3) [Data Source...] 버튼 클릭 후

Microsoft OLE DB Provider for ODBC Drivers 선택 -> [다음]

4) 데이터 연결 속성 -> 연결

데이터원본 이름 사용 : MyTest_ODBC

사용자 이름 : root

암호 : ***

사용할 초기 카탈로그 : (없음.)

연결테스트

5) mysql_api_test 테이블 선택 후 [OK]버튼 클릭

6) Charge, Insert, Delete 콤보를 선택한다.

7) 마침 버튼을 누르게 되면 테이블 명과 같은 클래스 ( Cmysqlapitest) 가 생성되고 화면이 이동된다.

 

에러가 발생하면 다음과 같은 부분을 찾아 삭제한다.

#error Security lssue: The connection string may contain a password

 

[4] 프로그램 작성

CmysqlapitestAccessor 데이터 처리 클래스

 

1. 헤더파일 추가

#include "mysqlapitest.h"

Cmysqlapitest m_SqlSet;

 

2.

BOOL CLoginDlg::OnInitDialog()

{

     HRESULT hr;

     if ( FAILED ( hr = m_SqlSet.Open() ) )

     {

           AfxMessageBox( " 데이터베이스 열기 실패 !" );

          return FALSE;

     }

}

 

3. 함수를 추가한다.

BooL CMydbMfcDlg::DBQuery( char* quer, int flag)

{

     HRESULT hr;

     m_SqlSet.Clos();

 

     if(floag==0)

     {

          if( FALED(  hr = m_SqlSet.CCommand<CAccessor<CmysqlapitestAccessor >  > ::Open(

          m_SqlSet.m_session, query))) return FALSE;

          M_sQLsET.mOVEfIRST();

     }

     else if (flag == 1)

     {

     if ( FAILED( hr-m_SqlSet.CCommand<CAccessor<CmysqlapitestAccessor> > ::Open( m_SqlSet.m_session,

     query, 0, 0, DBGUID_DEFAULT, false)))

     return FALSE;

     m_SqlSet.MoveFirst();

}

else

     return FALSE;

return TRUE;

}

 

4. 버튼을 생성하여 다음 쿼리를 테스트

void CMydbMfcDlg::OnButton1()

{

     int szID = 2;

     TCHAR szQuery[128] = {0, };

     wsprintf( szQuery, _T("select * from mysql_api_test where id = '%d'"), szID);

     if( !DBQuery( szQuery, 0 )))

     {

          AfxMessageBox(" 데이터베이스 연결 실패! ");

          return;

     }

     CString str;

     str.Format("%ld %;d %s", m_SqlSet.m_id, m_SqlSet.m_num, m_SqlSet.m_string );

     AfxMessageBox(str);

}

 

 

'Programming > MySQL' 카테고리의 다른 글

MySQL MFC 연동 예제  (0) 2020.06.29
MySQL MFC 연동  (0) 2020.06.29
Mysql 목록보기 조회  (0) 2020.06.28
MySQL PHP로 보기  (0) 2020.06.28
MySQL 외부명령 테이블 만들기  (0) 2020.06.28
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기