일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- mysql
- 유학
- weblogic
- 월화수목금토익
- ue5
- 최근증시
- paper2d
- HRD
- jdk17
- 학생비자
- 삼성 플렉스북
- 인물
- mastering unreal engine
- 주식
- 증시
- spring
- @JsonView
- spring message converters
- java
- kospi
- UE4
- spring security
- 펜실베이니아
- 필라델피아
- 금융공학
- AT&T
- flex하는게 아니었는데..
- rollbackOnly
- 어학연수
- JPA
Archives
- Today
- Total
HeBhy, since 1983.
WINAPI - Mysql 연결과 간단한 쿼리 본문
// WINAPI 상에서 ODBC 없이 Mysql 라이브러리로 바로 DB연결.
// 아래는 보통 stdafx.h에 포함.
// Mysql Server 5.1 이상 설치되어 있어야 함(설치시 옵션에서 Include/lib 포함 체크)
// 위 프로그램의 bin 폴더의 libmysql.dll 필요.
#pragma comment(lib, "libmysql.lib")
#pragma comment(lib, "ws2_32.lib")
#include <stdio.h>
#include <winsock2.h>
#include <mysql.h>
#define DB_HOST "127.0.0.1"
#define DB_USER "root"
#define DB_PASS "1234"
#define DB_NAME "test"
#define SQL_CREATE_TABLE "CREATE TABLE `mysql_api_test` (\
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,\
`num` INT NULL ,\
`string` VARCHAR( 20 ) NULL \
) TYPE = MYISAM ;" //"
#define SQL_INSERT_RECORD "INSERT INTO `mysql_api_test` ( `id` , `num` , `string` ) \
VALUES (\
NULL , '%d', '%s'\
);" //"
#define SQL_SELECT_RECORD "SELECT * FROM `mysql_api_test`"
#define SQL_DROP_TABLE "DROP TABLE `mysql_api_test`"
int DBConn()
{
MYSQL *connection=NULL, conn;
MYSQL_RES *sql_result;
MYSQL_ROW sql_row;
int query_stat;
int i;
char query[255];
TCHAR msg[255];
mysql_init(&conn);
// DB 연결
connection = mysql_real_connect(&conn, DB_HOST, DB_USER, DB_PASS, DB_NAME, 3306, (char *)NULL, 0);
if(connection==NULL)
{
wsprintf(msg, (LPCWSTR)"Mysql connection error : %s", mysql_error(&conn));
MessageBox(g_hWnd, msg, TEXT("1"), MB_OK);
return 1;
}
// 테이블 생성
query_stat=mysql_query(connection, SQL_CREATE_TABLE);
if (query_stat != 0)
{
wsprintf(msg, (LPCWSTR)"Mysql query error : %s", mysql_error(&conn));
MessageBox(g_hWnd, msg, TEXT("2"), MB_OK);
return 1;
}
// 레코드 삽입
for(i=0;i<5;i++)
{
sprintf_s(query, 255, SQL_INSERT_RECORD, 100+i, TEXT("아놔 ㅋㅋ"));
query_stat = mysql_query(connection, query);
if (query_stat != 0)
{
wsprintf(msg, (LPCWSTR)"Mysql query error : %s", mysql_error(&conn));
MessageBox(g_hWnd, msg, TEXT("3"), MB_OK);
return 1;
}
}
// 셀렉트
query_stat=mysql_query(connection,SQL_SELECT_RECORD);
if (query_stat != 0)
{
wsprintf(msg, (LPCWSTR)"Mysql query error : %s", mysql_error(&conn));
MessageBox(g_hWnd, msg, TEXT("4"), MB_OK);
return 1;
}
// 결과 출력
sql_result=mysql_store_result(connection);
while((sql_row=mysql_fetch_row(sql_result))!=NULL)
{
wsprintf(msg, (LPCWSTR)"%2s %2s %s\n",sql_row[0],sql_row[1],sql_row[2]);
//MessageBox(g_hWnd, msg, TEXT("5"), MB_OK);
}
mysql_free_result(sql_result);
// 테이블 삭제
query_stat=mysql_query(connection,SQL_DROP_TABLE);
if (query_stat != 0)
{
wsprintf(msg, (LPCWSTR)"Mysql query error : %s", mysql_error(&conn));
MessageBox(g_hWnd, msg, TEXT("6"), MB_OK);
return 1;
}
// DB 연결 닫기
mysql_close(connection);
return 0;
}
// 아래는 보통 stdafx.h에 포함.
// Mysql Server 5.1 이상 설치되어 있어야 함(설치시 옵션에서 Include/lib 포함 체크)
// 위 프로그램의 bin 폴더의 libmysql.dll 필요.
#pragma comment(lib, "libmysql.lib")
#pragma comment(lib, "ws2_32.lib")
#include <stdio.h>
#include <winsock2.h>
#include <mysql.h>
#define DB_HOST "127.0.0.1"
#define DB_USER "root"
#define DB_PASS "1234"
#define DB_NAME "test"
#define SQL_CREATE_TABLE "CREATE TABLE `mysql_api_test` (\
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,\
`num` INT NULL ,\
`string` VARCHAR( 20 ) NULL \
) TYPE = MYISAM ;" //"
#define SQL_INSERT_RECORD "INSERT INTO `mysql_api_test` ( `id` , `num` , `string` ) \
VALUES (\
NULL , '%d', '%s'\
);" //"
#define SQL_SELECT_RECORD "SELECT * FROM `mysql_api_test`"
#define SQL_DROP_TABLE "DROP TABLE `mysql_api_test`"
int DBConn()
{
MYSQL *connection=NULL, conn;
MYSQL_RES *sql_result;
MYSQL_ROW sql_row;
int query_stat;
int i;
char query[255];
TCHAR msg[255];
mysql_init(&conn);
// DB 연결
connection = mysql_real_connect(&conn, DB_HOST, DB_USER, DB_PASS, DB_NAME, 3306, (char *)NULL, 0);
if(connection==NULL)
{
wsprintf(msg, (LPCWSTR)"Mysql connection error : %s", mysql_error(&conn));
MessageBox(g_hWnd, msg, TEXT("1"), MB_OK);
return 1;
}
// 테이블 생성
query_stat=mysql_query(connection, SQL_CREATE_TABLE);
if (query_stat != 0)
{
wsprintf(msg, (LPCWSTR)"Mysql query error : %s", mysql_error(&conn));
MessageBox(g_hWnd, msg, TEXT("2"), MB_OK);
return 1;
}
// 레코드 삽입
for(i=0;i<5;i++)
{
sprintf_s(query, 255, SQL_INSERT_RECORD, 100+i, TEXT("아놔 ㅋㅋ"));
query_stat = mysql_query(connection, query);
if (query_stat != 0)
{
wsprintf(msg, (LPCWSTR)"Mysql query error : %s", mysql_error(&conn));
MessageBox(g_hWnd, msg, TEXT("3"), MB_OK);
return 1;
}
}
// 셀렉트
query_stat=mysql_query(connection,SQL_SELECT_RECORD);
if (query_stat != 0)
{
wsprintf(msg, (LPCWSTR)"Mysql query error : %s", mysql_error(&conn));
MessageBox(g_hWnd, msg, TEXT("4"), MB_OK);
return 1;
}
// 결과 출력
sql_result=mysql_store_result(connection);
while((sql_row=mysql_fetch_row(sql_result))!=NULL)
{
wsprintf(msg, (LPCWSTR)"%2s %2s %s\n",sql_row[0],sql_row[1],sql_row[2]);
//MessageBox(g_hWnd, msg, TEXT("5"), MB_OK);
}
mysql_free_result(sql_result);
// 테이블 삭제
query_stat=mysql_query(connection,SQL_DROP_TABLE);
if (query_stat != 0)
{
wsprintf(msg, (LPCWSTR)"Mysql query error : %s", mysql_error(&conn));
MessageBox(g_hWnd, msg, TEXT("6"), MB_OK);
return 1;
}
// DB 연결 닫기
mysql_close(connection);
return 0;
}
'Dev > Dev basics' 카테고리의 다른 글
WIN32API - 윈도우 생성 기초 (0) | 2008.08.07 |
---|---|
WIN32API - 윈도우 주요 메세지(Window Procedure) (0) | 2008.08.07 |
VC++ UTF-8 decode into Unicode (0) | 2008.08.07 |
[AI] reaction이 가능한 AI (0) | 2007.09.13 |
[MMORPG] Concept of the Map-Structure (0) | 2007.09.13 |
Comments