2008/12/03
MySQL Connector/C++ 을 이용한 간단한 테스트 소스
MySQL Connector/C++ 을 이용하여 간단하게 데이터 베이스 작업을 한 소스이다.
JDBC를 다루었던 경험이 있다면 정말 쉽게 MySQL Connector/C++ 을 이용할 수 있을 것 같다.
설명을하자면 쓸데 없는 글만 늘어 놓을 것 같으니 직접 소스를 보면 한 눈에 들어올 것이다.
2008/12/03 - [Dev Story] - MySQL Connector/C++ 1.0.1alpha is available!
2008/12/02 - [Dev Story/Tips] - MySQL Connector/C++ 1.0.1 Alpha 컴파일 하기
Original Post : http://neodreamer-dev.tistory.com/208
JDBC를 다루었던 경험이 있다면 정말 쉽게 MySQL Connector/C++ 을 이용할 수 있을 것 같다.
설명을하자면 쓸데 없는 글만 늘어 놓을 것 같으니 직접 소스를 보면 한 눈에 들어올 것이다.
try
{
// Driver 인스턴스 가져오기
m_pDriver = sql::mysql::MySQL_Driver::Instance();
if ( m_pDriver )
{
m_pConn = m_pDriver->connect( "tcp://127.0.0.1", "root", "");
if ( m_pConn )
{
// Statement 생성
sql::Statement *pStmt = m_pConn->createStatement();
sql::ResultSet *res = NULL;
// 데이터 베이스 선택
pStmt->execute( "USE mysql" );
{
// 질의문 수행
res = pStmt->executeQuery( "SELECT host FROM user" );
// 질의결과 탐색
while( res->next() )
{
// 컬럼 데이터 가져오기
std::string host = res->getString( "host" );
TRACE( "%s\n", host.c_str() );
}
// 질의 결과 셋 해제
delete res;
}
// 데이터 베이스 생성
pStmt->execute( "CREATE DATABASE IF NOT EXISTS test" );
// 데이터 베이스 선택
pStmt->execute( "USE test" );
string strQuery;
// 테이블 스키마
strQuery = "CREATE TABLE IF NOT EXISTS member ("
" NAME CHAR(50) NOT NULL PRIMARY KEY,"
" NICK CHAR(50) NULL,"
" AGE INT NOT NULL"
")"
;
// 테이블 내용 삭제
pStmt->execute( "DELETE FROM member" );
// 테이블 생성
pStmt->execute( strQuery );
{
// Insert 문
strQuery = "INSERT INTO member ( name, nick, age )"
" VALUES ('a', 'aa', 10)";
// 레코드 삽입
pStmt->executeUpdate( strQuery );
// 삽입된 레코드 수 가져오기
int nResult = pStmt->getUpdateCount();
TRACE( "Inserted row(s): %d\n", nResult );
}
// Prepared Statement 사용하기
strQuery = "INSERT INTO member ( name, nick, age )"
" VALUES ( ?, ?, ?)";
sql::PreparedStatement *pPreStmt;
pPreStmt = m_pConn->prepareStatement( strQuery );
char name[100];
for ( int i = 0; i < 100; ++i )
{
sprintf( name, "name%03d\0", i );
// 데이터 바인딩
pPreStmt->setString( 1, name );
pPreStmt->setString( 2, "" );
pPreStmt->setInt( 3, 3 );
// Prepared Statement 수행
pPreStmt->executeUpdate();
}
// Statement 삭제
delete pStmt;
}
}
}
catch (sql::SQLException &e)
{
// 예외처리 - 에러 메시지와 에러 코드를 가져올 수 있다.
std::string err = e.what();
}
2008/12/03 - [Dev Story] - MySQL Connector/C++ 1.0.1alpha is available!
2008/12/02 - [Dev Story/Tips] - MySQL Connector/C++ 1.0.1 Alpha 컴파일 하기
Original Post : http://neodreamer-dev.tistory.com/208
Labels:
MYSQL
,
MySQL Connector/C++
,
TistoryOldPost
Subscribe to:
Post Comments
(
Atom
)
No comments :
Post a Comment