有关DAO数据库的问题 直接插入新类,基于 CDaoRecordSet,然后选择数据库,下面就会了吧要包含#include <afxdao.h> 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 刚才又试了一下,的确可以.那不利用mfc该怎么办呢?那有dao数据库方面比较全面的例程呢?我想对着学一学. 这个我就不知道了,我也是很菜的,对MFC懂一点点而已,看看MSDN吧找最新的,里面有例子(我自己没看过)我可以发给你 我利用MFC插入一个CDaoRecordset的派生类後,在stdafx.h里包含了<afxdao.h>,然后在文档中定义了一个CDaoReocordset派生类的对象,结果编译总是出错.错误如下:error C2146: syntax error : missing ';' before identifier 'm_Recordset'error C2501: 'CWrad1Recordset' : missing storage-class or type specifierserror C2501: 'm_Recordset' : missing storage-class or type specifiersError executing cl.exe.我错在哪里?请大家指点 一个读取Excel文件的例子,看一看或许有帮助。1、用了3个类,CDaoDatabase,CDaoRecordset,CCrack;其中前两个类为VC自己定义的类,包含它的头文件就行了(afxdao.h)。CCrack为自定义的类,包含它的头文件与源文件。抛出异常类型为CDaoException。2、下面示例代码及注释。 CDaoDatabase db; //定义一数据库db CDaoRecordset tr(&db); //定义一db上数据集tr CCrack cDataConvert; //定义一数据转换类,用于转换数据。 CString szFileName; //用于保存要打开的文件名(包括路 径) COleVariant szRecordData; //保存获得的记录数据 CString szDisplay; //本例中用于显示数据。 char szFieldName[100]; //保存要读取的列名; strcpy(szFieldName,"content"); //写入列名 szFieldName[7]='\0'; CFileDialog dlg(true); dlg.DoModal(); //获取要打开的文件名及路径 szFileName = dlg.GetFileName(); db.Open(szFileName,true,true,"Excel 5.0"); //打开数据库 tr.Open(dbOpenDynaset,"select * from [game_question$]",dbReadOnly); //lib_question //打开该数据库上的数据集。 while (!tr.IsEOF()) { tr.GetFieldValue(szFieldName,szRecordData); //读取列名为szFieldName的 列的数据。 szDisplay = cDataConvert.strVARIANT(&szRecordData); //数据转换 m_Control.AddString(szDisplay); //本例中显示该数据 tr.MoveNext); //移动到下一行 } tr.Close(); //关闭数据集 db.Close(); //关闭数据库 是这样: 我用MFC生成了一个新类(CDaoRecordset的派生类),想在SDI的文档中用他.在MyDoc.h中定义了此新类的一个对象,在MyDoc.cpp中向数据库增加纪录,编译出现上述错误.afxdao.h是包含在stdafx.h中的.对程序中的每个类编译时,都出现上述错误.好像是头文件的问题. http://www.mayia.com/downshu/bookcity/down.asp?id=413<<Visual C++MFC 编程实例>>里面有这方面的实例。要记得给分。 这个错误怎么解决?在stdafx.h中我加入的是:#ifndef _AFX_NO_DAO_SUPPORT#include <afxdao.h> // MFC DAO database classes#endif // _AFX_NO_DAO_SUPPORT #include <afxdao.h>直接在CYourRecordSet 的头文件加入试试还有,在你定义CYourRecordSet m_Recordset的上面(应该市Class CYourDoc....)加上class CYourRecordSet;试试 包含在派生类里试过,也不行.我在用AppWizard建工程的时候,没有选择数据库的支持,现在用mfc生成新的CDaoRecoedset派生类,对上述问题有影响吗?例子我马上去看 语名没错#include <afxdao.h>有个笨方法,新建一个工程文件之后,加入mfc对数据库的支持(Appwizard的第4步),看它在哪些文件中加了那句话。另外,我说的那本书中的72和73例都是关于这方面的。 to howard():已经加了,不过还是有错,只不过错误减少了,如下: error C2079: 'm_Recordset' uses undefined class 'CWrad1Recordset' 我写数据库程序很少用到Doc类,觉得是鸡肋,我都是虚拟LISTVIEW加DIALOG写的你换个地方试试(操作数据库的部分放到别的类里) to tang_605(怀念605) : 按你的办法,就是在stdafx.h中加的呀 在你的DoC类的头部加上#include "wradlrecordset.h"然后删除class CWradlRecordSet;这段代码,或者都加上,你都试试 error C2079: 'm_Recordset' uses undefined class 'CWrad1Recordset'在'm_Recordset' 的定义头文件中include 'CWrad1Recordset' 的头文件。 现在可以了.在MyDoc.h中加上#include "wradlrecordset.h",而且加上class CWradlRecordSet;能告诉我是什么原因吗?谢谢你,怎么给分,我刚来不久. 如果不包含你自己的类的头文件,程序是不认识这个类的(很基本的知识)你的程序中有很多#include <XX.h>如果是尖括号,这个文件在系统的目录,如果是引号,则在你自己的项目的目录中 如果加上#include ",后面的Class ....可以不用了 VS2010设置项目属性时出错,未能加载文件或程序集 EXEC在MFC中怎么用?作用是什么? 关于Combox的一个菜鸟问题 如何完善利用MFC打印的CPrintFrame,CPrintView类,多谢了 api问题 关于CSocket的OnReceive不能被响应问题。 BCG的tabview的一个小问题:addview不执行初始化函数。 如何编程求平面上直线与任意多边形(注意凹多边形)的有效相交部分 CAD开发中如何用C++或VC? 请尽快帮忙回答,谢谢。 在VB中接受COM组件中返回的VARIANT类型 关于数据库访问的问题(OLEDB)
error C2146: syntax error : missing ';' before identifier 'm_Recordset'
error C2501: 'CWrad1Recordset' : missing storage-class or type specifiers
error C2501: 'm_Recordset' : missing storage-class or type specifiers
Error executing cl.exe.
我错在哪里?请大家指点
1、用了3个类,CDaoDatabase,CDaoRecordset,CCrack;其中前两个类为VC自己定义的类,包含它的头文件就行了(afxdao.h)。CCrack为自定义的类,包含它的头文件与源文件。抛出异常类型为CDaoException。
2、下面示例代码及注释。
CDaoDatabase db; //定义一数据库db
CDaoRecordset tr(&db); //定义一db上数据集tr
CCrack cDataConvert; //定义一数据转换类,用于转换数据。 CString szFileName; //用于保存要打开的文件名(包括路 径)
COleVariant szRecordData; //保存获得的记录数据
CString szDisplay; //本例中用于显示数据。 char szFieldName[100]; //保存要读取的列名;
strcpy(szFieldName,"content"); //写入列名
szFieldName[7]='\0'; CFileDialog dlg(true);
dlg.DoModal(); //获取要打开的文件名及路径
szFileName = dlg.GetFileName(); db.Open(szFileName,true,true,"Excel 5.0"); //打开数据库
tr.Open(dbOpenDynaset,"select * from [game_question$]",dbReadOnly);
//lib_question
//打开该数据库上的数据集。
while (!tr.IsEOF())
{
tr.GetFieldValue(szFieldName,szRecordData); //读取列名为szFieldName的 列的数据。 szDisplay = cDataConvert.strVARIANT(&szRecordData); //数据转换
m_Control.AddString(szDisplay); //本例中显示该数据 tr.MoveNext); //移动到下一行
} tr.Close(); //关闭数据集
db.Close(); //关闭数据库
我用MFC生成了一个新类(CDaoRecordset的派生类),想在SDI的文档中用他.
在MyDoc.h中定义了此新类的一个对象,在MyDoc.cpp中向数据库增加纪录,编译出现上述错误.afxdao.h是包含在stdafx.h中的.对程序中的每个类编译时,都出现上述错误.好像是头文件的问题.
<<Visual C++MFC 编程实例>>里面有这方面的实例。要记得给分。
#ifndef _AFX_NO_DAO_SUPPORT
#include <afxdao.h> // MFC DAO database classes
#endif // _AFX_NO_DAO_SUPPORT
还有,在你定义CYourRecordSet m_Recordset的上面(应该市Class CYourDoc....)
加上class CYourRecordSet;试试
我在用AppWizard建工程的时候,没有选择数据库的支持,现在用mfc生成新的CDaoRecoedset派生类,对上述问题有影响吗?
例子我马上去看
#include <afxdao.h>
有个笨方法,新建一个工程文件之后,加入mfc对数据库的支持(Appwizard的第4步),看它在哪些文件中加了那句话。另外,我说的那本书中的72和73例都是关于这方面的。
已经加了,不过还是有错,只不过错误减少了,如下:
error C2079: 'm_Recordset' uses undefined class 'CWrad1Recordset'
按你的办法,就是在stdafx.h中加的呀
然后删除class CWradlRecordSet;这段代码,或者都加上,你都试试
在'm_Recordset' 的定义头文件中include 'CWrad1Recordset' 的头文件。
你的程序中有很多#include <XX.h>如果是尖括号,这个文件在系统的目录,如果是引号,则在你自己的项目的目录中