MFC ODBC方式读取EXCEL的问题

最近用MFC ODBC方式读写EXCEL文件出现一个错误,望大神指点。
描述:
1.用ODBC创建了一个EXCEL 文件,其中只包含一个表名称为Plan。只建立了表的结构,没有插入数据。文件创建成功,结构正确;
2.用EXCEL打开文件,用编辑方式插入一条数据记录,并保存
3.用MFC打开EXCEL文件进行读取,CRcord对象recset2执行Open后,能够正确读取字段数量,字段名称等内容,但读不到数据。为什么呢?

CString sDriver = GetExcelDriver();//获取已安装EXCEL driver名称
if (sDriver.IsEmpty())
{
cout << "系统上没有安装Excel驱动,无法读取文件" << endl;
return 0;
}
CString sSql;
CDatabase database;
sSql.Format(_T("DRIVER={%s};DSN='';DBQ=%s"),
sDriver, m_TradePlanPath);
if (!database.OpenEx(sSql, CDatabase::noOdbcDialog))
{
cout << "进行数据读取时打开数据库失败" << endl;
return 0;
}
CDBVariant varValue;
CRecordset recset2(&database);
sSql = "SELECT * FROM Plan ";
TRY
{
recset2.Open(CRecordset::forwardOnly, sSql, CRecordset::readOnly);
// 读取数据
while (!recset2.IsEOF())
{
recset2.GetFieldValue(_T("XXX"), XXX);
recset2.MoveNext();
}
CATCH(...)
{...}

0

1个回答

编辑的时候由于笔误CATCH 前面少了个“}”,程序是能正常运行的,没有报错,但就是recset2.IsEOF()返回值为TRUE,进不了while循环

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
MFC之ODBC实现对Excel文件读写
1.前言 C++对excel文件进行读写主要方法有odbc读写和添加com库读写两种方法,本文先介绍odbc将excel当作数据库文件进行读写的方法,后续会介绍添加com库读写。 使用odbc前提应确保ODBC中已安装有Excel表格文件的驱动"MICROSOFT EXCEL DRIVER (*.XLS)",默认情况都是保护Excel文件驱动。 2.优缺点 优点: 代码少,结构简单,适
C++读写excel文件(一)—— 用ODBC读写(by yukin_xue)
优点: 代码少,结构简单,好理解。 缺点: 貌似只有先通过ODBC写后的excel内容,才能通过ODBC读出来,如果随便拿个excel文件用ODBC来读,不成功。会报错: Warning: ODBC Success With Info, 驱动程序的 SQLSetConnectAttr 失败 State:IM006,Native:0,Origin:[Microsoft][ODBC 驱动程序管理
vc下通过ODBC的方式操作Excel文件
CDatabase database;  CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel安装驱动  CString sExcelFile = fileName;//"c:\\demo.xls"; // 要建立的Excel文件  CString sSql;   TRY  {   // 创建进行存取的字符串   s
[VS2013]MFC下使用ODBC读写Excel表格
MFC下使用ODBC读写Excel表格 优点:操作方便、使用简单 缺点:1. 无法对表头行(即第一行)数据进行自定义修改    2.需要完整安装Office,为了使用Excel驱动读取表格文件 1. 创建基于对话框的MFC程序 Tips: 已经创建好项目的可以跳过这步。 - 设置项目名称 - 在这我用的是基于对话框 ...
《关于在MFC中使用ODBC方式连接数据库可能出现的问题》第一篇
相信初学者在开放数据库相关的内容都有遇到这些问题,所以总结常出现的问题!和节约方法! 出现:File: afxdb.inl  Line:73 原因:使用CRecordset对象或者对象为基类的对象没有打开连接!或者没有获取相关信息直接执行操作! 出现:“对于造型说明无效的字符值”或者“对数据类型限制”的提示 原因:再更改数据库变量的同时,并没有对其基于数据库表的对象的数据类型进行更改!或者
c++使用ODBC读取EXCEL表格
一、什么是ODBC  开放数据库连接(Open Database Connectivity,ODBC),每种数据库都有一套API(应用程序编程接口), 开发人员可以根据其API操控数据库。这就是所谓的ODBC API编程。EXCEL表也是一种数据结构(数据库),也有API方便开发人员编写。 二、确定数据源(ODBC)驱动程序已经安装  通过查看“控制面板”-->"管理工具"下面的“
C#学习笔记 ODBC 操作Excel
1,ODBC->开放数据库连接(Open Database Connectivity,ODBC)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)2,检查ODBC-Excel驱动程序的安装:控制面板->管理工具->数据源(ODBC)->驱动程序
通过vc中的CDatabase类来直接通过ODBC读写Excel表格文件
CDatabase对象表示到数据源的连接,通过它可以操作数据源。数据源是位于一些数据库管理系统(DBMS)的数据的指定实例,包括MicrosoftSQLServer,MicrosoftAccess,BorlanddBASE和xBASE。在应用中可以同时使一个或多个CDatabase对象活动。 注意: 如果在处理数据访问对象(DAO)类而不是开放数据库连接(ODBC)类,可使用类CDaoData
VC用OLE方式读写Excel
(转自:http://blog.csdn.net/qinghezhen/article/details/9906023)   前几天要做一个项目,需要读取Excel中的数据。从网上查资料发现,主要是有两种方式。一是把Excel表当成数据库使用ODBC读写,这样操作起来就跟操作Access数据库似的。但这种方式效率比较低。另一种方法是OLE技术(Object Linking and Embe
MFC ODBC类使用心得
        近日在使用MFC ODBC类进行一个数据库应用的开发,因为从没有用过MFC ODBC Class。在这上面费了不少精神。并且在CSDN和别的社区也看到不少新手在询问相关的问题,也为了让自己的解决掉的麻烦不给忘掉。所以找了个地方记下来,以备查询。1、CDatabase Class和CRecordset Class是可以直接使用而不必派生new class2、在直接使用CRecords
MFC下ODBC方式连接数据库
VS2010环境下,MFC ODBC方式连接SQL Server数据库,通过ODBC数据源连接配置。
C语言通过ODBC读写Excel表格文件(ODBC)
原文链接:http://blog.csdn.net/lzwxyz/article/details/6677393 想要通过ODBC直接读、写Excel表格文件,首先,应确保ODBC中已安装有Excel表格文件的驱动"MICROSOFT EXCEL DRIVER (*.XLS)"。然后,可根据下面步骤进行: 1. 在StdAfx.h文件中加入: #include #include
MFC/ODBC 记录集只读的问题
今天用vs2005 MFC/ODBC,对数据库中的一个表进行添加、删除操作时出现了“记录集是只读”的问题,导致无法对数据库进行修改。      现在找到问题的根源:   1.最好用CRecordset::OpenEx()函数打开数据源. 2.首先要指定为dynaset, rs.Open(CRecordset::dynaset,...); 其次要保证你要插入数据的那个表中
MFC之通过OLE实现对Excel文件的读写
关于C++实现对Excel文件的读写方法很多,大体思路为两类,一是ODBC方法,二是OLE方法,上一篇介绍了利用ODBC方法读写Excel文件,本文介绍使用OLE方法进行Excel文件读写。    文章参考了bolg.csdn.net/lht501692913/article/details/50345821,但在实际实现过程中存在各种小问题,故对其内容进行改进和补充。我采用VS2010+MFC
mfc odbc连接数据库并进行简单的操作
mfc odbc连接数据库并进行简单的操作
QT之ODBC操作Excel的解决方案
公司的一个测试程序,需要导出一些数据到Excel中。最初想到的是利用AxObject来实现,但好像对于我来说并没有找到什么好的解决方案,于是换成了ODBC操作Excel的方案。这是有原因的,因为当初QT使用SQL Server数据库的时候,我选择的就是利用ODBC实现的,相对来说比较熟悉。       QT的版本为:QT 5.3.1       开发环境:windows7 64位  
c++在MFC框架下实现读取Excel文件
在这里总结下在Window下如何读取Excel表格数据,方便自己学习和使用,网上的内容呢或多或少不太详细或者有些许错误,在这里总结下使用经验。 1. 首先在你的工程中要包含Excel的数据类,而数据类的导出可以借用MFC的类向导进行添加 右键工程,选择添加 ->添加类->MFC->TypeLib中的MFC类(如图 1.1所示)           图 1.1 点击添
MFC ODBC 详细用法
主要内容: ? MFC ODBC将ODBC API封装在类CDatabase、CRecordSet、CFieldExchange、CRecordView和CDBException中 ? 使用MFC ODBC开发数据库应用程序的一般步骤 ? 使用AppWizard访问数据库 ? 使用类CDatabase连接数据库 ? 使用类CRecordSet打开记录集、获取数据
MFC sql server的ADO及ODBC连接操作
MFC下对sql server用ADO及ODBC的操作源码,文件内有配置说明,以及配置连接字符说明,sql server使用说明,以及测试成功的截图
基于 WINFROM 读取 Excel 的两种方式
基于 WINFROM 读取 Excel 的两种方式
在Qt中使用ODBC导入Excel数据及程序部署
在Qt中使用ODBC导入Excel数据及程序部署 之前导入Excel的时候,用的是QAXObject相关,虽然也不难,导入速度也可以,但在客户的机器上部署时就非常麻烦,常常出现导入不成功的情况,后来试着使用ODBC,发现真的很方便,先上代码: //获取配置文件地址 #include &amp;lt;QtSql/QSqlDatabase&amp;gt; #include &amp;lt;QtSql/QSqlQuer...
VS2012 MFC 连接 ODBC数据库 成功经验
最近尝试了用VS2012  MFC 连接一个数据库,开始一直不
ado和odbc读取excel总结
因为项目需要,最近在做一个读取excel的工具,最开始是把excel转成tab分割的txt文本,然后当做文本文件来读取,然后有人嫌转换太麻烦,要求直接读excel,没办法,整!       我只尝试了ado和com两种方式,过程中也遇到很多的问题,所以决定总结下供需要的人参考。这里不详细说明读取的方法,这些在msdn都能查到,只说说在调用过程中我碰到的一些麻烦事。       因为读取的表格过
VC读写Excel 速度问题
上篇文章《VC读写Excel MFC读写Excel 考数据》中的考勤数据处理软件当Excel行数多的时候效率特别地,跟踪一下发现:时间主要花费在CSpreadSheet类的AddRow()方法中。通过ODBC来平凡的写Excel数据的时候都会出现这样的问题,数据行数少的时候还可以
关于MFC中读取EXCEL文件的操作
转自:点击打开链接 .h文件的源码代码如下: 其中的头文件都是OLE的头文件。如何导出可以参考 http://blog.csdn.net/wyz365889/article/details/7599924 一下是具体代码 头文件: #pragma once //OLE的头文件 #include #include #include #i
C++通过ODBC连接Oracle数据库
ODBC的基本介绍 ODBC是为数据库应用程序访问关系型数据库时提供的一个统一的接口,对于不同的数据库ODBC提供了一套统一的API,使应用程序可以访问任何一种提供了ODBC驱动程序的数据库。但是ODBC只能用于关系型数据库,这就使得利用ODBC很难访问对象型数据库及其他非关系型数据库。     这种方法也是我目前所知道的C++访问数据库的5中方法中的最简单的一种,实际上,因为所用到的开发工具
C++ 直接通过ODBC读写Excel表格文件
c++编写的读取excel文件的阅读器,方便快捷
MFC ODBC数据操作编程
为了简化开发人员编写数据库应用程序,VC++的在其基础类库(MFC)里对ODBC API进行了封装,实现了一个面向对象的数据库编程接口,使VC++的数据库变得更加容易。 本章首先对MFC ODBC的概貌进行简要介绍,然后讲述利用MFC ODBC进行数据库开发的技巧,最后将通过具体数据库开发实例,详细讲述通过MFC ODBC开发数据库应用程序的方法和过程。 6.1 了解MFC ODB
MFC使用ODBC连接MySQL数据库
MySQL使用ODBC连接数据库的过程如下: 1、下载安装MySQL的odbc驱动,注意版本问题,32位驱动对应32位数据库,64位驱动对应64位的数据库。 2、配置数据源。依次打开控制面板->管理工具->数据源(ODBC),弹出ODBC数据源管理器,在用户DSN选项卡下点击添加按钮。弹出创建新数据源。 选择MySQL ODBC Unicode Driver,点击完成按钮弹出如下界面 ①
用ODBC访问Excel时SELECT语句中需写table的名字
在网上参考了别人的VC下用ODBC直接访问Excel的文章,可是调试时总是弹出“数据库错误: Microsoft Jet 数据库引擎找不到对象'xls'。请确定对象是否存在,并正确地写出它的名称和路径”,这句提示真的很误导人,一开始真以为是文件路径或者名称不对,实际上是里面的表名不对,正确的写法是"FROM [表名$]"。
VBS 两种方式读取Excel
1:ADODB方式 Function GetConfig(sConfigFile, sSheet,sCaseId) ' Call PrintLog(Now, LOG_STATUS_INFO, &quot;GetConfig(&quot; &amp;amp; sConfigFile &amp;amp; &quot;,&quot; &amp;amp; sSheet &amp;amp; &quot;)&quot;) Dim oDictionary, oConnection Se...
轻松解析excel文件 ----利用MFC读取excel文件
在项目中需要解析excel文件,尝试了很多办法,最后还是利用MFC自带的解析Excel类。网上的资源很多,前面添加类步骤基本差不多,都能成功,但是在自己写类进行封装的时候,抄袭现象很明显,很多错误还是接着一字不差的发上来。最后找了一个错误不是很多的,自己修改封装,先附上一个demo。 (1)在Button控件下添加以下代码用于选取需要读取的文件 string path; path = CT...
MFC操作EXCEL封装类
MFC操作EXCEL简单的功能封装,方便工作使用。 #pragma once #include "excel9.h" enum eAlignmentStatus { Alignment_Left = -4131, Alignment_Middle = -4108, Alignment_Right = -4152, Alignment_Top = -4160, Alignment_
VS 2010 C++ 用ODBC方式读取数据库
环境:VS2010 C++ 用ODBC方式连接数据库,方法简单适合入门学习 数据库用的ACCESS
MFC中利用ODBC保存数据为Excel的问题的 解决方法
CDatabase database;     CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel安装驱动     CString sSql,sExcelFile;     //弹出对话框选择路径     CFileDialog fileDlg (FALSE, "Path", filename,OFN_FILEMUSTE
VS2013 MFC ODBC连接SQL SERVER数据库编程(二)
VS2013 MFC ODBC连接SQL SERVER数据库编程(二) 转载请注明:http://blog.csdn.net/my_acm/article/category/2616577 在上一篇中,我已经说明了如何连接SQL SERVER数据库 下面参考http://wenku.baidu.com/link?url=h1rGgnhSmnclH2lFexHmlP_SZ2LUDR
QT 快速读取Excel文件
QT 快速读取Excel文件,QT 快速读取Excel文件,QT 快速读取Excel文件。
MFC操作excel存取数据全步骤(OLE/COM)
1.             对excel的保存:                  1)     excel合成需要如下步骤:通过MFC工程的类向导添加类,并从现有类库中选择(from a type library),在弹出的对话框中选择office的excel.exe(或者是excel.olb),这里必须是office,而不能是wps,(对应得是et.exe,而不是excel.exe)。
OLEDB方式读取Excel丢失数据、字符串截断的原因和解决方法
1 引言   在应用程序的设计中,经常需要读取Excel数据或将Excel数据导入转换到其他数据载体中,例如将Excel数据通过应用程序导入SQL Sever等数据库中以备使用。笔者在开发“汽车产业链ASP协同商务平台”中遇到了类似需求。某汽车整车生产企业需要将其车辆发车信息发布到汽车产业链平台上去,其数据为内部ERP系统生成的Excel数据表,用户首先将该数据表上传至汽车产业链平台,平台将此
VC用ODBC方式读取Excel数据
    CDatabase database;    CString sSql;    CString sItem1, sItem2 , sItem3;    CString sDriver;    CString sDsn;    CString sFile,sPath;   CDBVariant   varValue;                                   
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 mfc游戏开发视频 数据库课程设计mfc

相似问题

3
同时下载同一个文件到多个移动硬盘中速度问题
1
Windows,MFC,多路运行的问题
3
VS2017 Edit Control控件添加变量问题
3
mfc 菜单栏添加事件处理程序,添加了一个dialog 错误:提示应输入标识符
1
mfc 当对话框有滚动条的时候,怎样打印出不在当前屏幕的那部分
3
电脑的这种控件如何做的,我想在MFC实现同样的功能,怎么处理?
3
MFC中怎么把输出的文字删除
10
MFC,如何在两个子对话框之间传递变量?
1
mfc中web bowser中网站如何自动填写账户密码
6
MFC按钮触发事件中如何关闭其它类的对话框,是需要获取其他类的指针吗?代码要怎么写?
1
MFC用windowdc在客户区外的桌面上用StretchBlt绘的图用什么函数可以销掉?
3
如何点击MFC按钮调用exe文件?
1
MFC中如何按下按钮调用dsw文件(另一个工程)并使之运行(exe)
4
MFC如何在OnTimer中获取静态文本框(ID为IDC_STATIC1)的rect区域
3
MFC如何一个类调用在另一个类中的.cpp中定义的static成员变量
3
MFC中鼠标点击在静态文本框1中改变原有颜色,并改变另一个静态文本框2中的颜色
7
MFC中鼠标点击在静态文本框1中改变原有颜色,并改变另一个静态文本框2中的颜色
1
MFC如何按一下按钮绘制图片,再按一下同一个按钮销毁图片?
1
MFC运行初始如何对话框就能出现在右边位置(而不是居中)
1
MFC如何在桌面上指定的rect上输出自己的图片?