C++链接mysql 索引方式的方式,我这用的是哪种啊?·

vs2008环境中vc++连接MySQL数据库,该怎么做_C++大全_优良自学吧 |
当前位置: >
> vs2008环境中vc++连接MySQL数据库,该怎么做优良自学吧提供vs2008环境中vc++连接MySQL数据库,该怎么做,vs2008环境中vc++连接MySQL数据库,该如何做?该使用哪种连接方式,请给出较详细的步骤,本人没有做过,最好给个实例,谢谢!如果采用,将给高分,进来混分的在这里不可能有收获,谢谢大侠们的指教!, /terrydong/archive/2008vs2008环境中vc++连接MySQL数据库,该如何做?该使用哪种连接方式,请给出较详细的步骤,本人没有做过,最好给个实例,谢谢!如果采用,将给高分,进来混分的在这里不可能有收获,谢谢大侠们的指教!------解决方案--------------------
/terrydong/archive//1040081.html
------解决方案--------------------/code/listcode.asp?mclsid=11&sclsid=1121/html/sql/other/69.html看上边两个链接,还有下边的内容。。。。。。。通过VC开发MySQL数据库应用软件有多种方式:
一、通过MyODBC界面
二、通过Connector/C++l界面
三、通过MySQL
四、第三方封装的MySQL类
在经过反复比较,我还是选择了MySQL
API方式来进行MySQL的开发。
在VC中使用MySQL的步骤如下:
1、下载MySQL的服务器/客户端安装包
官方下载地址如下:
/downloads/mysql-4.0.html
由于我的开发环境是Windows,所以我下载的是MySQL
2、安装MySQL服务器/客户端包
一般情况,选择下一步就行了。
默认情况,MySQL会安装到C:\mysql下。
3、在VC中设置其开发环境
[选项/项目/VC目录]
a.设置包含路径为c:\mysql\include
b.设置引用路径为c:\mysql\include
c.设置库路径为c:\mysql\lib\debug
[项目属性]
d.在设置链接器-输入-附加依赖项为libmySQL.lib
e.在stdafx.h中加入以下行:
&winsock.h&
4、至此就可以使用C
API函数进行开发了。
1.若出现无法使用mysql.h定义的类型的错误时,可重新生成工程即可.
2.若出现链接错误,可将libmySQL.dll文件拷贝到工程当前目录下.
MySQL提供了很多函数来对数据库进行操作,大致可以分为以下几类:
控制类函数
mysql_init()初始化MySQL对象
mysql_options()设置连接选项
mysql_real_connect()连接到MySQL数据库
mysql_real_escape_string()将查询串合法化
mysql_query()发出一个以空字符结束的查询串
mysql_real_query()发出一个查询串
mysql_store_result()一次性传送结果
mysql_use_result()逐行传送结果
mysql_free_result()释放结果集
mysql_change_user()改变用户
mysql_select_db()改变默认数据库
mysql_debug()送出调试信息
mysql_dump_debug_info()转储调试信息
mysql_ping()测试数据库是否处于活动状态
mysql_shutdown()请求数据库SHUTDOWN
mysql_close()关闭数据库连接
信息获取类函数
mysql_character_set_name()获取默认字符集
mysql_get_client_info()获取客户端信息
mysql_host_info()获取主机信息
mysql_get_proto_info()获取协议信息
mysql_get_server_info()获取服务器信息
mysql_info()获取部分查询语句的附加信息
mysql_stat()获取数据库状态
mysql_list_dbs()获取数据库列表
mysql_list_tables()获取数据表列表
mysql_list_fields()获取字段列表
行列类操作函数
mysql_field_count()获取字段数
mysql_affected_rows()获取受影响的行数
mysql_insert_id()获取AUTO_INCREMENT列的ID值
mysql_num_fields()获取结果集中的字段数
mysql_field_tell()获取当前字段位置
mysql_field_seek()定位字段
mysql_fetch_field()获取当前字段
mysql_fetch_field_direct()获取指定字段
mysql_frtch_fields()获取所有字段的数组
mysql_num_rows()获取行数
mysql_fetch_lengths()获取行长度
mysql_row_tell()获取当前行位置
mysql_row_seek()行定位
mysql_data_seek()行定位
mysql_fetch_row()获取当前行
线程类操作函数
mysql_list_processes()返回所有线程列表
mysql_thread_id()获取当前线程ID
mysql_thread_safe()是否支持线程方式
mysql_kill()杀列一个线程
出错处理类函数
mysql_errno()获取错误号
mysql_error()获取错误信息
已过时的函数
mysql_connect()
mysql_create_db()
mysql_drop_db()
mysql_eof()
mysql_reload()
mysql_escape_string()
------解决方案--------------------
http://topic.csdn.net/t//4865524.htmlhttp://topic.csdn.net/t//5021384.html这样的帖子太多了。
------解决方案--------------------
和VS2008没太大关系。都可以的。看上面链接里的例子。
------解决方案--------------------
API挺好用的
------解决方案--------------------
探讨不管什么样的,我想要个完整的例子,MySQL c api的也可以(本文来自互联网,不代表搜站(/)的观点和立场)编辑推荐最近更新C++链接mysql的方式,我这用的是哪种啊?·_百度知道
C++链接mysql的方式,我这用的是哪种啊?·
我知道C++链接数据库有那么几种方式,比如:db-libaray、ODBC、ADO等等。我把mysql安装文件的include和lib文件夹加入到了VS2010的附加包含目录、附加库目录里,在代穿碃扁度壮道憋权铂护码中包含mysql.h这个头文件,用mysql_real_connect()链接数据库,这算是哪种链接方法?
提问者采纳
直接通过api连接,并没有穿碃扁度壮道憋权铂护使用这些公共接口,所以以上都不是,(p.s. db-library是啥没听说过,应该不是指数据库api吧)
db-library是微软提供的访问数据库的底层函数,速度能更快一些,不过,它好像用Logtosvr()方法链接服务器的。
嗯,于是不是上面任何一种。用这些函数就是直接调用数据库软件提供的开发接口了
提问者评价
其他类似问题
mysql的相关知识
按默认排序
其他1条回答
ODBC的方式
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁请高手开发数据库系统类似MYSQL的数据库用哪种语言
[问题点数:40分,无满意结帖,结帖人haocodes]
请高手开发数据库系统类似MYSQL的数据库用哪种语言
[问题点数:40分,无满意结帖,结帖人haocodes]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
2010年9月 Delphi大版内专家分月排行榜第三2010年8月 Delphi大版内专家分月排行榜第三2010年5月 Delphi大版内专家分月排行榜第三
2014年4月 Delphi大版内专家分月排行榜第三2014年3月 Delphi大版内专家分月排行榜第三2013年5月 Delphi大版内专家分月排行榜第三2013年1月 Delphi大版内专家分月排行榜第三2010年11月 Delphi大版内专家分月排行榜第三2009年12月 Delphi大版内专家分月排行榜第三2009年11月 Delphi大版内专家分月排行榜第三
2010年12月 C++ Builder大版内专家分月排行榜第二2010年11月 C++ Builder大版内专家分月排行榜第二2010年7月 C++ Builder大版内专家分月排行榜第二2010年6月 C++ Builder大版内专家分月排行榜第二2010年4月 C++ Builder大版内专家分月排行榜第二
2011年4月 C++ Builder大版内专家分月排行榜第三2010年8月 C++ Builder大版内专家分月排行榜第三2010年2月 C++ Builder大版内专家分月排行榜第三2009年12月 C++ Builder大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。c/c++连接mysql数据库 - CSDN博客
& & & & 由于项目需要,要用c/c++链接mysql数据库。网上很多类似的解说,但是大部分都需要在本机器上安装完整版的msyql。其实,有时候我们并不想在改变自己电脑上原有的环境,但是我们却希望通过我们的程序链接数据库。比如:我在本机上已经安装了一个mysql,但并不是完整版的(比如appserv集成mysql或者wamp集成mysql),或者我的工作在局域网中,我只需要链接另外一台机器上的mysql。这样,为链接mysql而从头安装mysql server并不是一个最佳的选择。
& & & & mysql官网中提供了connector能够满足我们的需求。截止到目前,connector的种类有:ODBC、NET、J、Python、C++、C、PHP。由于C++包含了C,而对于我而言更习惯C的链接方式,所以,本人采用了Connector/C。官网的下载地址为:/downloads/connector/,但是下载需要注册,我早就忘了oracle的账号了,后来又重新注册了一下。为防止一些人遇到与我一样的问题,我上传了一些Connector for
c/c++,以供大家下载使用。下载网址为:。
& & & & 将下载的mysql-connector-c-6.1.2-win32.zip解压,重命名目录名为mysql,并将mysql文件夹剪切至vs工作目录中。本人的vs版本为2008。
有两种方式连接mysql数据库
1、动态链接:添加mysql的include目录(项目工作目录/mysql/include)到工程(右击 - 属性- 配置属性 - C/C++ - 常规- 附加包含目录),然后添加mysql的lib目录(项目工作目录/mysql/lib)到工程(右击 - 属性- 配置属性 - 连接器- 常规-附加包含目录)。这种方式为动态链接,在编译后的exe文件运行时,需要把libmysql.dll文件拷贝到exe文件的同目录中,这用起来比较麻烦。
2、如何把所有的代码都打包在一个exe中呢?那么就是静态连接。我们还可以在链接的时候用mysqlclient.lib库。具体为:首先然后改成release模式(因为mysqlclient.lib是在release模式下编译出来的),然后添加mysql的include目录(项目工作目录/mysql/include)到工程(右击 - 属性- 配置属性 - C/C++ - 常规- 附加包含目录),最后添加mysql的lib下对应的vc版本目录到工程而不是lib目录。比如:我用的是vs2008,其内部版本号为vs9,那么我将项目工作目录/mysql/lib/vs9目录添加到工程中(右击
- 属性- 配置属性 - 连接器- 常规-附加包含目录)。vs的版本号与年份的对应关系如下图所示。
& & & & & 一个示例代码如下:
#include &mysql.h&
#include &stdio.h&
#pragma comment(lib, &mysqlclient.lib&)
#pragma comment(linker,&/nodefaultlib:LIBCMT.lib&)
#pragma comment(linker,&/nodefaultlib:MSVCRTD.lib&)
int main(int argc,char **argv)
MYSQL* mysql = NULL;
mysql = mysql_init(mysql);
MYSQL_RES*
mysql_real_connect(mysql, &localhost&, &root&,&123456&, &kangry&, 3306, NULL, NULL);
mysql_query(mysql, &select * from whu_&);
res = mysql_store_result(mysql);
while((record=mysql_fetch_row(res)))
printf(&user_id=%s,user_name=%s,user_password=%s\n&, record[0], record[1], record[2]);
mysql_free_result(res);
mysql_close(mysql);
getchar();
}其中代码第四行是链接lib文件,第5、6行必须加上,表示忽略LIBCMT.lib和MSVCRTD.lib库。否则会报类似如下错误:
error LNK2005: __configthreadlocale 已经在 MSVCRT.lib(MSVCR90.dll) 中定义
& & & & 若最开始未调成release模式,那么在添加mysql的lib时需要将工作目录/mysql/lib/vs9/debug目录添加到工程,并将项目的运行时库改成MT(多线程),具体为:项目邮件-》属性-》配置属性-》C/C++-》代码生成-》运行时库。否则,可能会报如下错误:warning LNK4217: 本地定义的符号 _printf 在函数 _main 中导入。
& & & & 希望我的随笔能给大家带来帮助。}

我要回帖

更多关于 修改mysql编码方式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信