C++如何用mysql作为数据库?求大神指教 想用mysql作为C++程序的数据库,上官网看了一些,有一些资料是关于C的,C++的资料点进去是空的。希望大神告诉我,怎么进行开发?现在已经装了mysql最新的版本。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哥,我是google的。我肯定会事先查呀! 需要mysql的C语言开发包也就是头文件和lib文件有动态连接和静态连接两种方式#include "stdafx.h" #include <windows.h> #include <winsock2.h> #include <mysql.h> //忽略LIBCMT.lib, MSVCRTD.lib这些库,不然链接时会报lnk2005错误 #pragma comment(linker,"/nodefaultlib:LIBCMT.lib") #pragma comment(linker,"/nodefaultlib:MSVCRTD.lib") /*用mysqlclient.lib,不要用libmysql.lib,要不你要多带一个libmysql.dll 静态库有两个,一个是debug版的,一个是release版的,要注意 */ //#if defined _DEBUG //#pragma comment(lib, "mysqlclient_debug.lib") //#else #pragma comment(lib,"bufferoverflowU.lib") #pragma comment(lib, "libmysql.lib")//#endif #pragma comment(lib, "wsock32.lib") #pragma comment(lib, "Advapi32.lib") int main(int argc, char* argv[]) { MYSQL* mysql = NULL; mysql = mysql_init(mysql); MYSQL_RES* res; MYSQL_ROW record; mysql_real_connect(mysql, "127.0.0.1", "root","58612911", "test", 3306, NULL, NULL); mysql_query(mysql, "set names gbk;"); mysql_query(mysql, "select * from a"); res = mysql_store_result(mysql); while((record=mysql_fetch_row(res))) { printf("id=%s,name=%s\r\n", record[0], record[1]); } mysql_free_result(res); mysql_close(mysql); return 0; } 可是我想用C++的api,网上说connector C++做出来和JDBC差不多,很好用。但是我在网上找到的连接方式全部都必须要把编译环境配置一下。我是这样想的:它里面的.h文件和.lib文件和.dll文件都已经 有了,为什么需要配置?有没有拷贝的方式呢?求大神解答。 刚才下载了connector C++的mysql-connector-c++-noinstall-1.0.5-win32,目录下有:inlude 和lib两个文件夹:lib下有一个.dll两个.lib;而include里有2个.h文件和一个子文件夹,子文件夹下全是.h文件。刚才搜到了一个用vs配置的方法,可以行得通,果然和jdbc基本上是一样的。但是唯独PreparedStatement类报错找不找,但是这个类对应的文件在目录里确实存在,配置之后却在视图里没有显示。我的配置觉得没有问题,请问是不是提供的.lib文件有问题?还有如果我不想配置,想用拷贝和写代码的方式如何做?我知道.dll放在哪里,但是.lib和带有子目录的.h文件放在哪里?我直接拷贝试过了,不好使。 mysql主外键不能建立的问题? MYSQL触发器小问题 【提问】继续问一个PostgreSQL向mysql迁移的问题。 如何查询表名 重复记录问题,请指教! 急问:怎样用mysql数据库的query browser加入一个外键值啊 在MySQL中怎么将一个字段定义成逻辑类 下列条件的SQL如何写? 麻烦给解释一下mysql的表类型的区别及什么情况下使用何种类型!! mysql 插入语句请教!:) windows下如何修改MYSQL表名长度限制 show processlist Writing to net 状态如何解决?
也就是头文件和lib文件
有动态连接和静态连接两种方式
#include "stdafx.h"
#include <windows.h>
#include <winsock2.h>
#include <mysql.h>
//忽略LIBCMT.lib, MSVCRTD.lib这些库,不然链接时会报lnk2005错误
#pragma comment(linker,"/nodefaultlib:LIBCMT.lib")
#pragma comment(linker,"/nodefaultlib:MSVCRTD.lib")
/*用mysqlclient.lib,不要用libmysql.lib,要不你要多带一个libmysql.dll
静态库有两个,一个是debug版的,一个是release版的,要注意
*/
//#if defined _DEBUG
//#pragma comment(lib, "mysqlclient_debug.lib")
//#else
#pragma comment(lib,"bufferoverflowU.lib")
#pragma comment(lib, "libmysql.lib")
//#endif
#pragma comment(lib, "wsock32.lib")
#pragma comment(lib, "Advapi32.lib")
int main(int argc, char* argv[])
{
MYSQL* mysql = NULL;
mysql = mysql_init(mysql);
MYSQL_RES* res;
MYSQL_ROW record;
mysql_real_connect(mysql, "127.0.0.1", "root","58612911", "test", 3306, NULL, NULL);
mysql_query(mysql, "set names gbk;");
mysql_query(mysql, "select * from a");
res = mysql_store_result(mysql);
while((record=mysql_fetch_row(res)))
{
printf("id=%s,name=%s\r\n", record[0], record[1]);
}
mysql_free_result(res);
mysql_close(mysql);
return 0;
}
我是这样想的:它里面的.h文件和.lib文件和.dll文件都已经 有了,为什么需要配置?有没有拷贝的方式呢?求大神解答。
但是唯独PreparedStatement类报错找不找,但是这个类对应的文件在目录里确实存在,配置之后却在视图里没有显示。我的配置觉得没有问题,请问是不是提供的.lib文件有问题?
还有如果我不想配置,想用拷贝和写代码的方式如何做?我知道.dll放在哪里,但是.lib和带有子目录的.h文件放在哪里?我直接拷贝试过了,不好使。