Dev-cpp下使用 MYSQL C API尝试连接MYSQL(C++) 
2008-05-24 01:40:24|  分类: DataMining|举报|字号 订阅
在网上了很多关于使用MYSQL C API的资料,和实例。可不是VC下的,就是BCB的,要不就是Linux下的,而我一直想在Win下用标准C++来做东西(美其名曰是想要移植性 :) )。所以想在Dev-cpp下使用 MYSQL C API尝试连接MYSQL。下面把心得和连接、配置方法写一下。
Advertise on this site
Programmer home
Your Ad Here
1.当然要先安装MySQL数据库了。我安的是5.0
2.我的Dev-cpp版本是4.9.9.2,操作系统是Windows XP SP2 。
 
    a)为Dev-cpp下载MySQL的包。方法有两个:
            1)使用Dev-cpp的更新功能。“工具”-〉“检查更新” 如图1
图 1
图 2
在“Select devpak server”中选择“”如图3所示
图 3
点击“Check for updates”在得到的文件列表中选择“libmysql”
                            图 4
其他的就是下载和安装了。(图5-7)
图 5
图 6
图 7
        b)直接到下载,然后使用package manager安装
图  8
3.现在就可以新建工程,来在自己的程序中使用MySQL 提供的C API了。
*注意:需要对工程作如下设置:
          1)“工程”-〉“工程属性” 中 “参数”选项卡
    在“编译器”和“C++编译器”中加入
    “-Wall”和“-W”不包括“”,在“连接器”中加入“-lmysql”不包括“”
如图9
图 9
        2)在程序中加入
                  #include < mysql.h>
下面给出一个简单的示例程序。
#include <windows.h>
#include <iostream>
#include <mysql/mysql.h>
#define SELECT_QUERY "select * from stu "
using namespace std;
int main(int argc, char *argv[])
...{
    //connection params
    char *host = "localhost";
    char *user = "root";
    char *pass = "123";
    char *db = "mydb";
    //sock
    MYSQL *sock;
    MYSQL_RES *res;
      sock = mysql_init(0);
    if (sock) cout << "sock handle ok!" << endl;
    else ...{
         cout << "sock handle failed!" << endl;
         return EXIT_FAILURE;
    }
    //connection
    if (mysql_real_connect(sock, host, user, pass, db, 0, NULL, 0))
         cout << "connection ok!" << endl;
    else ...{
         cout << "connection failed!" << endl;
         return EXIT_FAILURE;
    }
       
    //query
    if (mysql_query (sock, SELECT_QUERY ))
    ...{
      cout << "Query failed " << mysql_error(sock) << endl;
      exit(1);
    }
    if ( !( res = mysql_store_result( sock )))
    ...{
      cout << "Couldn't get result from " << mysql_error(sock) <<endl;
      exit(1);
    }
   
    MYSQL_FIELD *field;
    MYSQL_ROW row;
    while ((field = mysql_fetch_field(res)))
    ...{
       printf("field name %s ", field->name);
    }
   
    while ( row = mysql_fetch_row ( res ))
    ...{
       cout<<row[0]<<"     "<<row[1]<<endl;
    }
     
   
    system("PAUSE");
   
    //closing connection
    mysql_free_result ( res );windows怎么使用mysql
    mysql_close(sock);
    return EXIT_SUCCESS;
}
运行结果

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。