본문 바로가기

Windows/MFC

MYSQL FOR VC++

Mysql.com에서 뒤지다 보면 mysql++이라는 놈이 있습니다.. mysql api니 받아서 설치하시고..
라이브러리 링크해주시면 사용가능합니다

이건 제가 젤 첨에 공부할때 만들어놓고 mysql쓸때마다 보는 제소슨데요;;


[code]
#define HOST "localhost"
#define USER "user"
#define PASS "asdf"
#define DATABASE "mysql"

int main(int argc, char* argv[])
{
    MYSQL mysql;
    MYSQL_RES *res;
    MYSQL_ROW row;
    int fields;
    int cnt;
    char *query;

    //Step1:mysql변수 초기화
    mysql_init(&mysql);

    //Step2:mysql에 접속
    if(!mysql_real_connect(&mysql, HOST, USER, PASS, DATABASE, 0, (char*)NULL, 0))
    {
        //1044<--db없음 or deny ->없기만 하면 루틴을 만들겠는데 deny가 낀다. -_- 쳇
        printf("error no : %d\n%s\n", mysql_errno(&mysql), mysql_error(&mysql));
        exit(1);
    }

    printf("Mysql Connected...\n");

    ////////Step 3이 메인 루틴이다. 1 2 4는 한번씩 실행되는 루틴
    //Step3:query실행 쿼리의 명령은 속도를 위해 대문자를 사용한다

    query="SELECT count(*) FROM user";
    if(mysql_real_query(&mysql, query, strlen(query)))
    {//1146<--table 없음
        printf("error no : %d\n%s\n", mysql_errno(&mysql), mysql_error(&mysql));
        exit(1);
    }

    res=mysql_store_result(&mysql);
    fields=mysql_field_count(&mysql);

    ////////////////////////////////////////
    //res // fields // error             //
    //NULL// 0     // UPDATE or DELETE //
    //NOTNULL ---------> OK             //
    //NULL// NOT 0 // Error             //
    ////////////////////////////////////////

    if(res)//NULL이 아닌 부분 즉 레코드가 있는 경우
    {
        while((row=mysql_fetch_row(res)))
        {
            for(cnt=0;cnt<fields;cnt++)
                printf("%12s", row[cnt]);

            printf("\n");
        }
    }
    else
    {//NULL인 부분 에러 또는 update나 delete같이 레코드가 없는 결과를 수행한 경우

        if(fields==0)//fields가 0이므로 오케이
        {
            printf("%d rows affected\n", mysql_affected_rows(&mysql));
        }
        else
        {
            printf("error no : %d\n%s\n", mysql_errno(&mysql), mysql_error(&mysql));
            exit(1);
        }
    }

    mysql_free_result(res);

    //Step4:종료한다
    mysql_close(&mysql);

    return 0;
}
[/code]

'Windows > MFC' 카테고리의 다른 글

MYSQL FOR VC++ (3) Installation  (0) 2013.10.02
MYSQL FOR VC++ (2)  (0) 2013.10.02
ADO DB FOR MYSQL  (0) 2013.10.02
아이콘 변경 ICON  (0) 2013.10.02
AfxBeginThread 쓰레드  (0) 2013.10.02