• C++ 连接 mysql 的一个例子(Visual Studio 2005)


        新学期刚才始,这学期开了两门关于dbms的课程:数据库原理及数据库应用,so今儿就先抛开原理不说,搞了个轻量级的开源数据库mysql小试一下.其实一年多前就用过mysql,今儿也就算重温了一下.记得当时就是学了学SQL和mysql的基本管理,并没有在程序中使用数据库,所以这次目标很明确~~~

        当不知道从何处下手的时间总是会google,这回不例外.查看一些文章和别人的blog以后发现只要用mysql developer tool提供的C API即可.头文件:#include <mysql.h>
        仅仅加入这一行是不能通过编译的,还要:工具->选项->项目与解决方案->VC++目录,在"显示以下内容"列表框中选择"包含文件",然后把"C:\MySQL\MySQL Server 5.1\include"加到下面列表中.接着在"显示以下内容"列表框中选择"库文件",再把"C:\MySQL\MySQL Server 5.1\lib\debug"加到下面列表中.

        最后把代码copy到main.cpp文件中,代码如下(网上的一个例子,这里我修改了一些地方以便程序适合本地的环境):

     1#include <windows.h>
     2#include <iostream>
     3#include <mysql.h>
     4#include <stdio.h>
     5
     6using namespace std;
     7
     8int main()
     9{
    10    //connection params
    11    //FILE *file;
    12    char *host = "localhost";
    13    char *user = "root";
    14    char *pass = "123456";
    15    char *db = "mysql";
    16    
    17    //sock
    18    MYSQL *sock;
    19    MYSQL_RES *results;
    20    MYSQL_ROW record;
    21    sock = mysql_init(0);
    22    if (sock) 
    23        cout << "sock handle ok!" << endl;
    24    else 
    25    {
    26        cout << "sock handle failed!" << mysql_error(sock) << endl;
    27    }

    28
    29    //connection
    30    if (mysql_real_connect(sock, host, user, pass, db, 0, NULL, 0))
    31        cout << "connection ok!" << endl;
    32    else 
    33    {
    34        cout << "connection fail: " << mysql_error(sock) << endl;
    35    }

    36    mysql_set_character_set(sock,"gb2312");
    37    
    38    //connection character set
    39    cout << "connection character set: " << mysql_character_set_name(sock) << endl;
    40
    41    //wait for posibility to check system/mysql sockets
    42    if(mysql_query(sock,"select * from user"))
    43    {
    44        cout<<"very good!"<<endl;                            
    45    }

    46    results=mysql_store_result(sock);
    47    printf("主机\t用户名\n");
    48    while(record = mysql_fetch_row(results))
    49    {
    50        printf("%s\t%s \n",record[0],record[1]);
    51    }

    52    mysql_free_result(results);
    53    //system("PAUSE");
    54    
    55    //closing connection
    56    mysql_close(sock);
    57
    58    return EXIT_SUCCESS;
    59}


        最后运行结果如下:
                sock handle ok!
                connection ok!
                connection character set: gb2312
                主机    用户名
                localhost       root
                请按任意键继续. . .
     

        就这点使用方法总结,望大家在VS2005上使用C++开发db应用有个顺利的入门.

  • 相关阅读:
    pyqt 设置QTabWidget标签页不可选
    C#分块读取文本数据(FileStream)
    C#IO读写文本txt文件中的数据
    C#IO读写文本txt文件中的数据
    Winform开发主界面菜单的动态树形列表展示
    Winform开发主界面菜单的动态树形列表展示
    C#LinqJoin两个DataTable
    C#LinqJoin两个DataTable
    c#转义字符
    c#转义字符
  • 原文地址:https://www.cnblogs.com/suyang/p/1092756.html
Copyright © 2020-2023  润新知