'mysql'에 해당되는 글 2건

  1. 2010.02.17 MySQL 테이블 export, import
  2. 2009.08.21 MySQL++
프로그래밍/기타2010. 2. 17. 15:24
1. export
MySQL Query Browser을 이용하면 테이블의 데이터를 csv 파일로 쉽게 export 할수 있습니다.



2. import
MySQL 콘솔에 다음과 같은 쿼리를 실행합니다.

LOAD DATA INFILE 'cvs파일경로' INTO TABLE 테이블명
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
ESCAPED BY '\\' LINES TERMINATED BY '\r\n';
Posted by devop
TAG CSV, mysql

댓글을 달아 주세요

MySQL++은 이름에서 짐작할수 있듯이 MySQL C API를 보다 사용하기 쉽도록 C++인터페이스로 작성한 것입니다. 
MySQL++은 표준 C++ 컴파일러와 MySQL 데이터베이스를 설치가능한 플랫폼이라면 거의 모든 환경(Windows, Linux, MAC OS X 등)에서 동작가능합니다.

MySQL++과 같이 사용하기에 권장되는 MySQL은 버전 4.1이상 입니다. 그 이하버전에 대해서는 충분한 테스트가 이루어지지 않았다고 합니다.



1. 빌드하기
MySQL++을 컴파일 하기 위해서는 MySQL 설치시 제공하는 *.h 파일들과 라이브러리 파일이 필요합니다.(MySQL을 설치할때 개발지원 항목을 체크해야 합니다.)


MySQL을 개발지원을 포함해 설치하면 위 그림과 같은 화면을 볼수 있습니다. 여기서 include 폴더에 *.h 파일들이 lib/opt 폴더 안에 라이브러리 파일들이 존재합니다.



이제 MySQL++ 솔루션 파일을 열어 위 그림과 같이 추가 포함 디렉토리에 include 경로를, 추가 라이브러리 디렉터리에 lib/opt 경로를 넣어주면 됩니다.(기본적으로 C:\Program Files\MySQL\MySQL Server 5.0 경로 아래 해당 디렉터리 경로가 설정되 있습니다.)


이제 굵은 글씨로 표시된 mysqlpp 프로젝트를 성공적으로 빌드할 수 있습니다. 빌드를 마치면 Release(또는 Debug)폴더 안에 mysqlpp.dll 파일이 생성된것을 확인할수 있습니다.(디버그 버전일 경우 _d 라는 접미사가 붙습니다.)


2. MySQL++ 링크하기
MySQL++을 자신의 프로젝트로 링크해서 사용하기 위해서는 위에서와 비슷한 절차가 필요합니다. 먼저 MySQL의 *.h파일과 라이브러리 파일이 있는 include 경로와 lib 경로를 프로젝트에 설정하고 마찬가지로 MySQL++의 *.h파일과 라이브러리 파일이 있는 경로를 프로젝트에 설정해야 합니다.(*.h 파일들은  MySQL++의 lib폴더에서 찾을수 있습니다.)


3. 매뉴얼
사이트: http://tangentsoft.net/mysql++/doc/ 에서 다운로드 할 수 있습니다.
Specialized SQL Structures와 같은 특징들은 매우 유용하므로 자세히 살펴보는게 좋습니다.


4. 라이센스
MySQL++은 LPGL 라이센스 정책을 따릅니다. 여담이지만 LPGP 라이센스하의 프로젝트들은 공유라이브러리로만 빌드할수 있으며 정적 라이브러리로는 빌드가 불가능 합니다.


5. 다른 라이브러리
MySQL을 wrapping한 라이브러리로 Connector/C++이 있습니다. 

MySQL++과의 차이점은 다음과 같습니다.

   MySQL Connector/C++ MySQL++ 
API Follow JDBC 3.0 API  Non-standard API
The MySQL++ API is "C++-ish" and rich of C++ specific goodies
License GPL(+FLOSS License Exception)
Commercial license upon request 
LGPL 
Status Preview only  Stable GA(Generla Availability) release


6. 예제코드
#include "mysql++.h"

int main(int argc, char *argv[])
{
	// Get database access parameters from command line
	const char* db = 0, *server = 0, *user = 0, *pass = "";
	if (!parse_command_line(argc, argv, &db, &server, &user, &pass)) {
		return 1;
	}

	// Connect to the sample database.
	mysqlpp::Connection conn(false);
	if (conn.connect(db, server, user, pass)) {
		// Retrieve a subset of the sample stock table set up by resetdb
		// and display it.
		mysqlpp::Query query = conn.query("select item from stock");
		if (mysqlpp::StoreQueryResult res = query.store()) {
			cout << "We have:" << endl;
			for (size_t i = 0; i < res.num_rows(); ++i) {
				cout << '\t' << res[i][0] << endl;
			}
		}
		else {
			cerr << "Failed to get item list: " << query.error() << endl;
			return 1;
		}

		return 0;
	}
	else {
		cerr << "DB connection failed: " << conn.error() << endl;
		return 1;
	}
}

'프로그래밍 > 오픈소스' 카테고리의 다른 글

SQLite with Eclipse  (1) 2010.05.06
SWF파일 분석 도구  (0) 2010.04.13
boost library 설치  (0) 2010.03.17
libcurl 사용하기  (0) 2010.03.15
SQLite  (3) 2009.09.11
ACE(ADAPTIVE Communication Environment)  (0) 2009.09.03
MySQL++  (0) 2009.08.21
C++ 암복호화 라이브러리 Crypto++  (0) 2009.08.20
C/C++ XML Parser TinyXml  (1) 2009.08.20
HttpClient와 Jericho Parser를 이용한 HTML 파싱  (0) 2009.07.28
GeoIP를 이용한 IP대역별 국가코드 검색  (1) 2009.07.07
Posted by devop
TAG c++, mysql, MySQL++

댓글을 달아 주세요