一. 要安装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的更多相关文章

  1. Delphi XE8中的DBExpress使用ODBC方式连接MySQL 5.6.24 X64!!!!

    Delphi:XE2.XE8 MySQL:5.6.24 X64 今天准备做一个使用数据库的REST程序,最开始使用XE2,后来使用XE8,但是我遇到一个让我头疼的问题,就是无法连接我要使用的数据库,这 ...

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

    jmeter中通过jdbc方式连接mysql数据库的配置参考: Database URL=jdbc:mysql://ip:port/dbname?useUnicode=true&allowMu ...

  3. Spark JDBC方式连接MySQL数据库

    Spark JDBC方式连接MySQL数据库 一.JDBC connection properties(属性名称和含义) 二.spark jdbc read MySQL 三.jdbc(url: Str ...

  4. 使用tomcat的jndi方式连接mysql的字符编码设置

    最近新项目使用tomcat中配置jndi连接mysql的方式,在使用过程中发现查询条件为中文的时候查询不出结果,经过一通折腾,发现是jndi在连接数据库的时候忘记设置字符编码. 修改之后的完整配置如下 ...

  5. ODBC方式连接Informix数据库

    公司某个报表系统使用Informix数据库,在谋划使用Perl语言写数据采集程序后,花费了很多时间建立Perl访问Informix连接.恰巧Windows下ActivePerl的CPAN中又没有DBD ...

  6. C++ API方式连接mysql数据库实现增删改查

    这里复制的 http://www.bitscn.com/pdb/mysql/201407/226252.html 一.环境配置 1,装好mysql,新建一个C++控制台工程(从最简单的弄起,这个会了, ...

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

    最近由于服务器变更为Linux系统.MsSql for Linux什么时候出来到生产环境使用还是要很长时间的.于是考虑使用Mysql数据库,ORM使用EF.于是先踩下坑顺便记录一下,有需要的tx可以参 ...

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

    本文原文地址为:https://www.cnblogs.com/summit7ca/p/5423637.html 原文测试环境为windows 8.1+Vs2013+MySql5.7.12 本人在wi ...

  9. JDBC纯驱动方式连接MySQL

    1 新建一个名为MysqlDemo的JavaProject 2 从http://dev.mysql.com/downloads/connector/j/中下载最新的驱动包. 这里有.tar.gz和.z ...

随机推荐

  1. iOS性能优化:Instruments使用实战

    iOS性能优化:Instruments使用实战   最近采用Instruments 来分析整个应用程序的性能.发现很多有意思的点,以及性能优化和一些分析性能消耗的技巧,小结如下. Instrument ...

  2. [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 ...

  3. java-常见异常

    一.运行时异常 1.空指针(java.lang.NullPointerException) 2.类型转换() 3.数组下标越界(java.lang.ArrayIndexOutOfBoundsExcep ...

  4. sbt assembly build.sbt content

    // import sbt._ // import sbt.Keys._ // import java.io.File // import AssemblyKeys._ name := "n ...

  5. 继续畅通工程-Floyd

    畅通工程续 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submiss ...

  6. Oracle常见SQL语句

    --创建表空间--create tablespace ts_namedatafile 'd:\test\ts_name.dbf' size 100mautoextend on --调整表空间大小--a ...

  7. centos6.6 LVS+keepalived

    之前有写过keepalived+mysql  和lvsDR模式的分析篇.然而LVS没有写高冗余.今天来写一篇LVS+keepalived的 LVSDR只负责转发,LVS也没有nginx后端检查功能,所 ...

  8. Eclipse安装jad插件进行反编译

    1.下载的eclipse是免安装的工具: 打开eclipse后在windows-preference下没有找到jadClipse,希望显示这个插件: 方法一:Help-Eclipse Marketpl ...

  9. Yii2 发送邮件

    http://www.cnblogs.com/wwolf/p/5438691.html?utm_source=tuicool&utm_medium=referral

  10. PHP 标准库 SPL 之数据结构栈(SplStack)简单实践

    PHP 5.3.0 版本及以上的堆栈描述可以使用标准库 SPL 中的 SplStack class,SplStack 类继承双链表 ( SplDoublyLinkedList ) 实现栈. 代码: & ...