Eclipse+CDT下连接MySql数据库

本文介绍在Eclipse CDT环境下配置并使用MySQL数据库的方法,包括所需工具下载、库文件转换、编译配置及调试步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Eclipse+CDT下连接MySql数据库

操作系统:windowsXP

开发环境:Eclipse,CDT,Mysql5.16(mysql-noinstall-5.1.6-alpha-win32)

准备工作:

1)  reimp.exe 用来将libmysql.lib转换成libmysql.def和libmysql.a文件

http://www.qtcn.org/download/mingw-utils-0.3.tar.gz

2) 从网上下载 mysql-noinstall-5.1.6-alpha-win32.rar这个包,里面有我们需要的mysql开发头文件和必要的库文件

3) gdb.exe要在6.6版本以上,否则DEBUG的时候会出现很多莫名其妙的错误。

 

代码:(从网上找来的)

#include <windows.h>

#include <stdio.h>

#include <string.h>

#include "include/mysql.h"

 

int main(int argc, char * argv[]) {

    char szTargetDSN[] = "test";

    char szSqlText[500] = "";

    char aszFlds[25][25];

    MYSQL * myData;

    MYSQL_RES * res;

    MYSQL_FIELD * fd;

    MYSQL_ROW row;

    int i, j, k;

    BOOL bCreate = TRUE;

 

    if ((myData = mysql_init((MYSQL*) 0))

    //初始化数据结构

           && mysql_real_connect(myData, "localhost",

           //连接数据库

                  "root", "root", szTargetDSN, MYSQL_PORT, NULL, 0))

    {

        if (bCreate)

        {

           sprintf(szSqlText, //构造SQL语句,新建一张表

                  "create table mytable "

                  "(time datetime, s1 char(6), "

                  "s2 char(11), s3 int, s4 int)");

           if (mysql_query(myData, szSqlText))

           //执行SQL语句

           {//执行SQL语句出错

              printf("Can't create table");

              mysql_close(myData);

              return FALSE;

           }

        }

        sprintf(szSqlText, "insert into mytable "

       //向表中插入数据

                  "values('2000-3-10 21:01:30',"

                  //注意时间的格式

              "'Test','MySQLTest',2000,3)");

        if (mysql_query(myData, szSqlText))

        {//执行SQL语句出错

           printf("Can't insert data to table");

           mysql_close(myData);

           return FALSE;

        }

        sprintf(szSqlText, "select * from mytable ");

        if (mysql_query(myData, szSqlText))

       //进行数据检索

        {

           //执行SQL语句出错

           mysql_close(myData);

           return FALSE;

        } else {

           res = mysql_store_result(myData);

           //取得查询结果

           i = (int) mysql_num_rows(res);

           //取得有效记录数

           printf( "Query: %s/n%ld records found:n", szSqlText, i ) ;

           for ( i = 0;fd = mysql_fetch_field(res);i++ )

              strcpy( aszFlds[ i ], fd->name );

           //取得各字段名

           for (i = 1; row = mysql_fetch_row(res);)

           //依次读取各条记录

           {

              j = mysql_num_fields(res);

              //取得记录中的字段数

              printf("Record #%ld:-/n", i++);

              for (k = 0; k < j; k++)

              //输出各字段的值

                  printf(" Fld #%d (%s): %s/n",k + 1,aszFlds[k],(((row[k] == NULL) || (!strlen(row[k]))) ? "NULL" : row[k]));

              puts("==============================/n");

           }

           mysql_free_result(res);

       }

    } else {//连接数据库出错

       printf("Can't connect to the mysql server ");

       mysql_close(myData);

       return FALSE;

    }

    mysql_close(myData);

    return TRUE;

}

 

在Eclipse中新建工程,并新建mysql_conn.c的文件(略)

下面主要描述如何编译通过。

将mysql-noinstall-5.1.6-alpha-win32/ include目录拷贝到工程所在目录,

保证#include "include/mysql.h" 这句有效。

如果这个时候编译一定会报 undefined reference to 'mysql_init@4' 这类错误。

 

步骤一:(编译通过)

在mysql-noinstall-5.1.6-alpha-win32中找到libmysql.lib文件,并拷贝到和reimp.exe同一目录下,执行:

>reimp libmysql.lib

此时会自动产生 libmysql.def和libmysql.a文件,用文本编辑器打开会看到mysql_init@4这项,这个就是我们需要的,然后将libmysql.a文件拷贝到工程目录下的lib目录中,并修改MAKEFILE:

g++ mysql_conn.c -L "D:/Program Files/eclipsework/mysql_conn/lib" -l "mysql" -g -o mysql_conn

注意: -l "mysql",并不是libmysql

此时代码就能正常编译成mysql_conn.exe了。

 

步骤二:(设置编译项,为DEBUG做准备)

1)Project->Properties

 

2)C/C++ Build ->Settings->Binary Parsers->PE Windows Parser->Apply->OK

由于是在WINDOWS平台上运行,所以必须设置成PE Windows Parser,否则在Eclipse中run都不行,会提示不识别该二进制文件

 

3)Run->Run Configurations...

 

4)C/C++ Local Application->右键->new..

5)Name :mysql_conn Project :mysql_conn C/C++ Application : ..../mysql_conn.exe

 

重新编译,后就可以正常的在Eclipse中运行了。

 

 

 

 

步骤三:如何进行DEBUG

  • 1. 设置断点。直接双击对应的代码行左边即可。
  • 2. 设置DEBUG项,比较重要。
  • 1) run->debug configuration..
  • 2) C/C++ Local Application->mysql_conn->Debugger

3)GDB command set: Standard (Windows)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值