윈도우에서 mysql에 접근하여 사용하는법
1. 우선 윈도우에서 mysql을 설치하되 프로그램을 설치할때 Select type에서 complete를 선택하여 프로그램을 설치한다.(Typical로 설치하면 개발에 관련된 파일들이 설치되자 않고 mysql을 사용하는데 필요한 파일만 깔리므로 사용자 정의로 들어가 추가하여도 되지만 그냥 편하게 전체 설치를 하는 것을 권장한다.)

그다음은 이곳을 참조하여 프로그램을 설치하도록 하자

정보문화사 블로그 : Window에서 MySql설치하기
[http://blog.naver.com/infopub/100052196232]

자 이제 일단 MySql에 대한 준비는 끝이 났다.

그럼 프로그램을 위한 세팅을 해야 할 차례이다.

우선 사용 프로그램은 Visual C++ 6.0을 기준으로 설명을 진행하겠다.

우선적으로 Visual C++을 실행시켜 Tools의 메뉴중 Options를 선택한다.

그러면 창이 뜨는데 그중 탭에서 Directories탭을 선택한다.

그럼 창에 2가지의 드롭다운 메뉴와 1가지의 에티트 창이 보일 것이다.
그중 첫번째 드롭다운 메뉴를 건드릴 필요는 전혀 없고, 두번째 드롭다운 메뉴인 Show directories for: 에서 설정을 추가해야 하는데 아래 그림과 같이 추가를 한다.
1. 우선적으로 Include files에서 설치한 MySql의 Include폴더를 추가시킨다.

2. Show directories for: 를 Library files로 바꾼후 MySql의 Lib폴더를 추가시키고, 추가로 Lib폴더 아래에 있는 opt폴더를 추가시키자. opt폴더를 추가시키지 않으면 libmysql.lib파일이 없다는 에러를 한동안 맞이해야 할 것이다. :)

이제 옵션의 세팅은 끝이 났다.

그러면 이제 프로그램을 타이핑 하기 전에 다음과 같이 프로젝트 세팅에 적어주자

이제 프로그램을 타이핑을 해보자.
* 코드는 c로 작성되었고, console환경에서 프로그램을 실행시켰다.
아래 소스코드는 지돌스타
#define SOCKET int

#include <string.h>
#include <stdio.h>
#include <mysql.h>     // mysql.h를 제일 밑에 두지 않으면 에러가 발생합니다. 주의하세요

// 아래 define문은 자신의 환경에 맞추어 세팅을 해주어야 합니다.
#define DB_HOST "호스트 IP, 도메인 또는 localhost"
#define DB_USER "접속 ID"
#define DB_PASS "접속 암호"
#define DB_NAME "DB명"

#define SQL_CREATE_TABLE "CREATE TABLE `mysql_api_test` (\
    `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,\
    `num` INT NULL ,\
    `string` VARCHAR( 40 ) 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 main()
{
    MYSQL *connection=NULL, conn;
    MYSQL_RES *sql_result;
    MYSQL_ROW sql_row;
    int query_stat;
    int i;

    char query[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)
    {
        fprintf(stderr, "Mysql connection error : %s", mysql_error(&conn));
        return 1;
    }

    // 테이블 생성
    query_stat=mysql_query(connection,SQL_CREATE_TABLE);
    if (query_stat != 0)
    {
        fprintf(stderr, "Mysql query error : %s", mysql_error(&conn));
        return 1;
    }

    // 레코드 삽입
    for(i=0;i<5;i++)
    {
        sprintf(query,SQL_INSERT_RECORD,100+i,"Mysql세팅 어렵다 어려워~");
        query_stat = mysql_query(connection, query);
        if (query_stat != 0)
        {
            fprintf(stderr, "Mysql query error : %s", mysql_error(&conn));
            return 1;
        }
    }

    // 셀렉트
    query_stat=mysql_query(connection,SQL_SELECT_RECORD);
    if (query_stat != 0)
    {
        fprintf(stderr, "Mysql query error : %s", mysql_error(&conn));
        return 1;
    }

    // 결과 출력
    sql_result=mysql_store_result(connection);
    while((sql_row=mysql_fetch_row(sql_result))!=NULL)
    {
        printf("%2s %2s %s\n",sql_row[0],sql_row[1],sql_row[2]);
    }
    mysql_free_result(sql_result);

    // 테이블 삭제
    query_stat=mysql_query(connection,SQL_DROP_TABLE);
    if (query_stat != 0)
    {
        fprintf(stderr, "Mysql query error : %s", mysql_error(&conn));
        return 1;
    }

    // DB 연결 닫기
    mysql_close(connection);
    return 0;
}

'프로그래밍' 카테고리의 다른 글

MYSQL C API  (0) 2009.12.02
[데이터베이스] 윈도우에서 mysql에 접근하여 사용하는법  (0) 2009.12.02

+ Recent posts