OLE DB를 이용해 MSSQL DB사용하는 예제 소스 코드MFC2015. 9. 3. 20:09
Table of Contents
반응형
- #include <atldbcli.h>
- #include <iostream>
- using namespace std;
- class state
- {
- public:
- //데이터를 저장할 자료형 선언
- char ip[20];
- char date[20];
- char time[20];
- //데이터베이스의 컬럼과 위치를 맞춤
- BEGIN_COLUMN_MAP(state)
- COLUMN_ENTRY(1, ip)
- COLUMN_ENTRY(3, date)
- COLUMN_ENTRY(4, time)
- END_COLUMN_MAP()
- };
- //OLEDB 객체 선언
- CDataSource ds;
- CSession session;
- CCommand <CAccessor<state> > cust;
- int main()
- {
- try {
- //COM 초기화
- HRESULT hr = CoInitialize(0);
- if (FAILED(hr))
- {
- cout << "COM 초기화 할 수 없습니다." << endl;
- return -1;
- }
- //데이터베이스 연결
- CDBPropSet dbinit(DBPROPSET_DBINIT);
- dbinit.AddProperty(DBPROP_INIT_PROMPT, (SHORT)4);
- dbinit.AddProperty(DBPROP_INIT_PROVIDERSTRING, OLESTR("PROVIDER=SQLOLEDB.1;SERVER=DB아이피주소;UID=아이디;PWD=패스워드;DATABASE=데이터베이스이름"));
- dbinit.AddProperty(DBPROP_INIT_LCID, (LONG)1043); //->Locale identifier
- hr = ds.Open(_T("SQLOLEDB"), &dbinit);
- if (FAILED(hr))
- {
- cout << "데이터 베이스를 열 수 없습니다." << endl;
- return -1;
- }
- //세션을 시작합니다.
- hr = session.Open(ds);
- if (FAILED(hr))
- {
- cout << "SESSION을 시작할 수 없습니다." << endl;
- ds.Close();
- return -1;
- }
- //사용할 쿼리문을 문자열로 만들어 둠.
- char mySQL[] = "SELECT * FROM state";
- //쿼리문을 실행한다.
- hr = cust.Open(session, mySQL);
- if (FAILED(hr))
- {
- cout << "쿼리문을 수행할 수 없습니다." << endl;
- session.Close();
- ds.Close();
- return -1;
- }
- //읽어온 데이터를 화면에 출력한다.
- while (cust.MoveNext() == S_OK)
- {
- cout << cust.ip << ", " << cust.date << ", " << cust.time << endl;
- }
- cust.Close();
- session.Close();
- ds.Close();
- return 1;
- }
- catch (...)
- {
- cout << "알 수 없는 에러 발생" << endl;
- return -1;
- }
- }
반응형
'MFC' 카테고리의 다른 글
비주얼스튜디오 2015에서 컴파일된 결과를 백업하려 했더니 용량이 커서... (0) | 2015.09.05 |
---|---|
64비트 컴퓨터에 설치된 Visual Studio 2015로 32비트용 실행파일 컴파일하기 (5) | 2015.09.05 |
64비트 컴퓨터에 설치된 Visual Studio 2013으로 32비트용 실행파일 컴파일하기 (0) | 2015.09.03 |
Visual Studio 2013용 멀티바이트 MFC 라이브러리 (0) | 2015.08.26 |
MFC 사용 가능한 시리얼 포트 읽어오기 (0) | 2015.02.15 |