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
MFC通过ODBC方式连接mysql的更多相关文章
- Delphi XE8中的DBExpress使用ODBC方式连接MySQL 5.6.24 X64!!!!
Delphi:XE2.XE8 MySQL:5.6.24 X64 今天准备做一个使用数据库的REST程序,最开始使用XE2,后来使用XE8,但是我遇到一个让我头疼的问题,就是无法连接我要使用的数据库,这 ...
- jmeter中通过jdbc方式连接mysql数据库的配置参考
jmeter中通过jdbc方式连接mysql数据库的配置参考: Database URL=jdbc:mysql://ip:port/dbname?useUnicode=true&allowMu ...
- Spark JDBC方式连接MySQL数据库
Spark JDBC方式连接MySQL数据库 一.JDBC connection properties(属性名称和含义) 二.spark jdbc read MySQL 三.jdbc(url: Str ...
- 使用tomcat的jndi方式连接mysql的字符编码设置
最近新项目使用tomcat中配置jndi连接mysql的方式,在使用过程中发现查询条件为中文的时候查询不出结果,经过一通折腾,发现是jndi在连接数据库的时候忘记设置字符编码. 修改之后的完整配置如下 ...
- ODBC方式连接Informix数据库
公司某个报表系统使用Informix数据库,在谋划使用Perl语言写数据采集程序后,花费了很多时间建立Perl访问Informix连接.恰巧Windows下ActivePerl的CPAN中又没有DBD ...
- C++ API方式连接mysql数据库实现增删改查
这里复制的 http://www.bitscn.com/pdb/mysql/201407/226252.html 一.环境配置 1,装好mysql,新建一个C++控制台工程(从最简单的弄起,这个会了, ...
- Asp.net Mvc 使用EF6 code first 方式连接MySQL总结
最近由于服务器变更为Linux系统.MsSql for Linux什么时候出来到生产环境使用还是要很长时间的.于是考虑使用Mysql数据库,ORM使用EF.于是先踩下坑顺便记录一下,有需要的tx可以参 ...
- 【亲测】Asp.net Mvc5 + EF6 code first 方式连接MySQL总结
本文原文地址为:https://www.cnblogs.com/summit7ca/p/5423637.html 原文测试环境为windows 8.1+Vs2013+MySql5.7.12 本人在wi ...
- JDBC纯驱动方式连接MySQL
1 新建一个名为MysqlDemo的JavaProject 2 从http://dev.mysql.com/downloads/connector/j/中下载最新的驱动包. 这里有.tar.gz和.z ...
随机推荐
- iOS性能优化:Instruments使用实战
iOS性能优化:Instruments使用实战 最近采用Instruments 来分析整个应用程序的性能.发现很多有意思的点,以及性能优化和一些分析性能消耗的技巧,小结如下. Instrument ...
- [CareerCup] 18.12 Largest Sum Submatrix 和最大的子矩阵
18.12 Given an NxN matrix of positive and negative integers, write code to find the submatrix with t ...
- java-常见异常
一.运行时异常 1.空指针(java.lang.NullPointerException) 2.类型转换() 3.数组下标越界(java.lang.ArrayIndexOutOfBoundsExcep ...
- sbt assembly build.sbt content
// import sbt._ // import sbt.Keys._ // import java.io.File // import AssemblyKeys._ name := "n ...
- 继续畅通工程-Floyd
畅通工程续 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submiss ...
- Oracle常见SQL语句
--创建表空间--create tablespace ts_namedatafile 'd:\test\ts_name.dbf' size 100mautoextend on --调整表空间大小--a ...
- centos6.6 LVS+keepalived
之前有写过keepalived+mysql 和lvsDR模式的分析篇.然而LVS没有写高冗余.今天来写一篇LVS+keepalived的 LVSDR只负责转发,LVS也没有nginx后端检查功能,所 ...
- Eclipse安装jad插件进行反编译
1.下载的eclipse是免安装的工具: 打开eclipse后在windows-preference下没有找到jadClipse,希望显示这个插件: 方法一:Help-Eclipse Marketpl ...
- Yii2 发送邮件
http://www.cnblogs.com/wwolf/p/5438691.html?utm_source=tuicool&utm_medium=referral
- PHP 标准库 SPL 之数据结构栈(SplStack)简单实践
PHP 5.3.0 版本及以上的堆栈描述可以使用标准库 SPL 中的 SplStack class,SplStack 类继承双链表 ( SplDoublyLinkedList ) 实现栈. 代码: & ...