개요
DB를 사용하면 보통 mssql을 많이 쓰는걸로 알고 있다. 그리고 mssql을 많이 쓰는 이유는 아마 편하기 때문일 것이다. 하지만, mysql은 오픈소스의 아주 빠른 속도의 검증된 db이다. 쉽게 접속할 수 있게 mysql++이란 라이브러리가 있기에 이를 이용하면 db를 훨씬 쉽게 access할 수 있을 것이다.
사용하기에 따라서 제로보드나 그누보드의 게시물을, 프로그래밍을 해서 관리가 가능하다 ^^
사전 준비
관련 라이브러리를 먼저 받아야 한다. 아래 mysql 에서 mysql++-1.7.1-win32-vc++.zip 를 다운로드
http://dev.mysql.com/downloads/
위의 파일을 압축을 풀면 다음과 같은 디렉토리 구조로 되어있다.
├─include
├─lib
├─mysql ┬include
│ └lib
│
└─sqlplus
- 프로젝트에서 include 와 lib 디렉토리를 포함시켜야 한다. mysql 디렉토리의 include 와 lib 역시 포함시킨다.
하는 방법은 [Tools>Options>Directories] 의 'Show direcotries for:' 콤보상자의 include 에서 위의 include 와 mysql/include 의 경로를 추가 시키고, lib 에서 lib와 mysql/lib 의 경로를 추가시킨다. 이때는 전체 경로로 지정해줘야 한다. - 프로젝트 세팅에서 mysql++.lib를 추가시킨다.
하는 방법은 [Project>Setting>Link] 에 들어가면 Objec/library modules:라는 Textbox가 있다 제일앞에 mysql++.lib 를 입력하면 된다. - 마지막으로 run-time library를 Multithreaded DLL 로 바꿔주어야 한다.
바꾸는 방법은 [Project>Setting>C/C++] 에 Category를 Code Generation 으로 바꾸면 Use run-time library 콤보 박스를 Multithreaded DLL로 바꾸면 된다. - 아, 그리고 libmySQL.dll 을 windows의 system 에 넣던지, 혹은 프로젝트 폴더에 넣어 두어야 실행이 된다는 것도 명심히자. libmySQL.dll은 mysql/lib 안에 있다.
- 이제 다음을 코딩해서 mysql에 있는 데이타를 한번 보자..
int main(void) { // Connection 클래스의 인스턴스의 생성자 매개변수로 접속하게 된다. //인자는 (db이름, 호스트주소, 접속아이디, 비번) 순으로 쓴다. Connection con("db_name", "localhost", "dikafryo", "password");
Query query = con.query(); // 질의를 할수 있게 질의 객체를 다음과 같이 생성한다. query << "SELECT * FROM counter_ip"; // sql문 쿼리를 쓸수가 있다. Result res = query.store(); // 쿼리의 결과물을 res에 저장한다.
// 처음 Display 첫줄에 제목을 타나태주기 위해 썼다. cout.setf(ios::left); cout << setw(11) << "no" << setw(13) << "date" << setw(13) << "unique_counter" << setw(13) << "pageview" << endl;
// i는 레코드 단위의 반복자이다. Result::iterator i; Row row;
// for문으로 반복하면서 끝날때까지 계속 화면에 뿌려준다. for(i = res.begin(); i != res.end(); i++) { row = *i; cout << setw(11) << row["no"] << setw(13) << row["date"] << setw(13) << row["unique_counter"] << setw(13) << row["pageview"] << endl; } return 1; }






댓글을 달아 주세요