MFC通过ODBC方式连接mysql

一. 要安装mysql-connector-odbc驱动

二. 配置数据源

电脑的控制面板-管理工具-数据源ODBC-系统DSN-添加-选择刚刚安装的mysql odbc Driver

参考 http://www.bitscn.com/pdb/mysql/201407/226195.html

如果电脑是win7 64位,则需要使用C:\Windows\SysWOW64\odbcad32.exe来添加数据源

参考 http://blog.csdn.net/wang379275614/article/details/7803576

三. 代码

1. 包含头文件 afxdb.h

2. 通过下面两个类操作数据库

CDatabase类 http://www.cnblogs.com/good90/archive/2012/03/04/2379371.html
CRecordset类 http://blog.csdn.net/elcoteq983/article/details/7000745

错误集锦:

1. 使用CRecordset::GetFieldValue的错误:error C2668

m_rsSet.GetFieldValue( 0 , val);

编译时出现:error C2668: ‘GetFieldValue‘ : ambiguous call to overloaded function

应改为:m_rsSet.GetFieldValue( (short)0 , val);

原因:GetFieldValue函数的第一个参数是short类型。

http://www.cppblog.com/xhubobo/archive/2012/06/29/180769.html

 

2. 无效的字段名或字段索引

在使用MFC的CRecord类及其派生类的时候,如果需要获取某个字段的值,就需要用到GetFieldValue的方法了。

      据我所知,GetFieldValue方法有2个重载版本,一个是GetFieldValue("字段索引","变量名"),另一个是GetFieldValue("字段名","变量名")。如果需要获取多个字段的值,那么这两种方法都对获取字段值的顺序没有要求。需要注意的是,在使用字段索引的方法时,用SELECT语句查询出来的字段的索引时从0开始的,由于GetFieldValue方法中索引的类型是short,因此需要用(short)0将0强制转换为short类型,否则会出现“error C2668: ‘GetFieldValue‘ : ambiguous call to overloaded function”的错误,这在另外一篇文章里面有所描述。

      最后,进入本文章的主要内容。在使用GetFieldValue方法的时候,如果使用字段名获取字段值,尽管对顺序没有特殊要求,但是很多时候在运行程序时会出现“无效的字段名或字段索引”的错误,这是因为该方法对变量名的大小写有要求,将字段名修改为大写形式,即可解决问题,例如GetFieldValue( "Rid" , val)会出错,而对于GetFieldValue( "RID" , val),不管数据表中的字段名是否大小写都能顺利通过。

http://www.cppblog.com/xhubobo/archive/2012/06/29/180770.html

时间: 2024-10-02 02:16:34

MFC通过ODBC方式连接mysql的相关文章

SSIS ODBC方式连接mysql数据库的一个问题

开发工具 vs2010 ssdt 最近项目中需要将ms sqlserver 数据库和mysql数据库进行数据交互集成,在SSIS包开发过程中,Mysql odbc connector 插件的安装费 了不少时间.我下载了5.3.4版本的mysqlconnector . OS系统是win8,1 64 位,所以对应安装了64位的插件. 在控制面板找到管理工具然后设置ODBC源时也一切正常 test connection successful. 设置完成在SSIS包新建mysql数据库连接时,却发现插件

C++ ADO方式连接mysql数据库

对于软件开发其实说白了就是在不停地和数据打交道, 所以数据库的操作是必不可少的, 接下来介绍VC开发中利用ADO建立ODBC数据源来访问MySQL数据库. 从我接触的数据库编程方式来说, 我觉得在vc开发连接数据库是比较难的, 也是很容易出错. 在android中, 系统自带sqlite数据库,只需要使用SQLiteOpenHelper抽象类即可完成与数据库的操作. 在java中, 使用jdbc连接mysql数据库, 下载相应jar调用相应接口,传入数据库类型与用户名密码进行数据库的操作. 但是

jmeter中通过jdbc方式连接mysql数据库的配置参考

jmeter中通过jdbc方式连接mysql数据库的配置参考: Database URL=jdbc:mysql://ip:port/dbname?useUnicode=true&characterEncoding=UTF-8 JDBC Driver class=com.mysql.jdbc.Driver jmeter中配置截图:

Zabbix | 使用odbc方式监控MySQL

一.配置ODBC源 1.要连接mysql需安装mysqodbc驱动(zabbix_server上或者proxy上安装): yum install -y mysql-connector-odbc 2.以上步骤完成后.可通过命令 dbcinst -j 查看信息 DRIVER是驱动配置路径,一般不需要改动 SYSTEM DATA SOURCES是系统级源所有用户可见 USER DATA SOURCES是当前用户可见(用户ODBC源优先于系统ODBC源) 3.权限配置 /usr/lib/目录下是没有关于

Asp.net Mvc 使用EF6 code first 方式连接MySQL总结

最近由于服务器变更为Linux系统.MsSql for Linux什么时候出来到生产环境使用还是要很长时间的.于是考虑使用Mysql数据库,ORM使用EF.于是先踩下坑顺便记录一下,有需要的tx可以参考下.当你考虑使用EF连接Mysql的时候肯定是已经在网上搜了一堆教程.网上教程基本都是使用控制台做演示.跟着一步步来姿势没错的话可能会正常运行,但项目中使用分层后,把数据层剥离出去,再使用code first连接瞬间蒙B了,各种奇葩问题随之而来.咋跟教程说的不一样呢...所以本文就一步步的介绍如何

【亲测】Asp.net Mvc5 + EF6 code first 方式连接MySQL总结

本文原文地址为:https://www.cnblogs.com/summit7ca/p/5423637.html 原文测试环境为windows 8.1+Vs2013+MySql5.7.12 本人在win10+vs2017+MySql5.7下测试通过 最近由于服务器变更为Linux系统.MsSql for Linux什么时候出来到生产环境使用还是要很长时间的.于是考虑使用Mysql数据库,ORM使用EF.于是先踩下坑顺便记录一下,有需要的tx可以参考下. 当你考虑使用EF连接Mysql的时候肯定是

JDBC纯驱动方式连接MySQL

1 新建一个名为MysqlDemo的JavaProject 2 从http://dev.mysql.com/downloads/connector/j/中下载最新的驱动包. 这里有.tar.gz和.zip两种格式的包,因为在windows下都可以解压缩,随便下一个都行. 3 将下载的驱动包解压缩后,将MySQL-connector-Java-5.1.38-bin.jar拷贝到项目中 4 在项目中建立一个名为MysqlDemo的Java类 5 在MysqlDemo.java中编写代码 [java]

[转]ef使用dbfirst方式连接mysql

转自:http://www.cnblogs.com/gameman/p/3773240.html 为了学习ORM,选择了EntityFramework,经历了三天两夜的煎熬,N多次错误,在群里高手的帮助下,终于成功,现在将我的心路历程记录下来,一是让自己有个记录,另外就是让其它人少走些弯路. 我的开发环境是Win7+VS2012,数据库环境是Ubuntu12.04+MySQL+Mono+Jexus 计划开发完后整个运行在Linux下. 1.下载MySQL Connector/Net 6.8.3

Spring Boot使用JDBC方式连接MySQL

首先去spring官网下载一个名为test的Spring Boot项目模板:https://start.spring.io/ 然后在mysql中的testdb数据库中新建一张名为test_user的表: drop table if exists `test_user`; create table `test_user` ( `id` integer not null auto_increment primary key, `name` varchar(20), `password` varcha