直接插入新类,基于 CDaoRecordSet,然后选择数据库,下面就会了吧
要包含#include <afxdao.h>
要包含#include <afxdao.h>
解决方案 »
- VC6中如何让一个工程同时可编译动态DLL和静态.Lib库?
- 为什么CListCtrl.SetItemText返回FALSE?
- 请问一个VC资料哪里有下载的。。。。
- 问一个UDP传输疲劳问题。
- 为什么我用CSocket序列化后将位图数据传送后,在客户端出现的位图出现好象马赛克一样的图像?
- 请教UDP的发送问题
- 零分问题
- 为什么在vc6.0的dialog上加载 micro office spreadsheet10.0控件编译过不去
- 哪能下载到InstallShield Developer 7.0 的东方语言包?
- 怎样得到一个线程的状态?(是挂起还是在运行,谢谢了)
- 在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>如果是尖括号,这个文件在系统的目录,如果是引号,则在你自己的项目的目录中