可是另一个CPP就没有出错啊
// CProductSet.cpp : CProductSet 类的实现
//#include "stdafx.h"
#include "DBSample.h"
#include "CProductSet.h"#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CProductSet 实现// 代码生成在 2011年8月5日 星期五, 12:32IMPLEMENT_DYNAMIC(CProductSet, CRecordset)CProductSet::CProductSet(CDatabase* pdb)
: CRecordset(pdb)
{
m_ProductID = 0;
m_ProductName = L"";
m_SupplierID = 0;
m_CategoryID = 0;
m_QuantityPerUnit = L"";
m_UnitPrice = 0.0;
m_UnitsInStock = 0;
m_UnitsOnOrder = 0;
m_ReorderLevel = 0;
m_Discontinued = FALSE;
m_nFields = 10;
m_nDefaultType = snapshot;
}
//#error 安全问题:连接字符串可能包含密码。
// 此连接字符串中可能包含明文密码和/或其他重要
// 信息。请在查看完此连接字符串并找到所有与安全
// 有关的问题后移除 #error。可能需要将此密码存
// 储为其他格式或使用其他的用户身份验证。
CString CProductSet::GetDefaultConnect()
{
return _T("DSN=Northwind;DBQ=D:\\Northwind.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin;");
//return _T("ODBC;");//自己选择数据源
}CString CProductSet::GetDefaultSQL()
{
return _T("[Products]");
}void CProductSet::DoFieldExchange(CFieldExchange* pFX)
{
pFX->SetFieldType(CFieldExchange::outputColumn);
// RFX_Text() 和 RFX_Int() 这类宏依赖的是
// 成员变量的类型,而不是数据库字段的类型。
// ODBC 尝试自动将列值转换为所请求的类型
RFX_Long(pFX, _T("[ProductID]"), m_ProductID);
RFX_Text(pFX, _T("[ProductName]"), m_ProductName);
RFX_Long(pFX, _T("[SupplierID]"), m_SupplierID);
RFX_Long(pFX, _T("[CategoryID]"), m_CategoryID);
RFX_Text(pFX, _T("[QuantityPerUnit]"), m_QuantityPerUnit);
RFX_Double(pFX, _T("[UnitPrice]"), m_UnitPrice);
RFX_Int(pFX, _T("[UnitsInStock]"), m_UnitsInStock);
RFX_Int(pFX, _T("[UnitsOnOrder]"), m_UnitsOnOrder);
RFX_Int(pFX, _T("[ReorderLevel]"), m_ReorderLevel);
RFX_Bool(pFX, _T("[Discontinued]"), m_Discontinued);}
/////////////////////////////////////////////////////////////////////////////
// CProductSet 诊断#ifdef _DEBUG
void CProductSet::AssertValid() const
{
CRecordset::AssertValid();
}void CProductSet::Dump(CDumpContext& dc) const
{
CRecordset::Dump(dc);
}
#endif //_DEBUG

解决方案 »

  1.   

    1>------ 已启动生成: 项目: DBSample, 配置: Debug Win32 ------
    1>正在编译...
    1>OrderView.cpp
    1>d:\my documents\visual studio 2008\projects\dbsample\dbsample\orderview.cpp(8) : error C2259: “COrderView”: 不能实例化抽象类
    1>        由于下列成员:
    1>        “CRecordset *CRecordView::OnGetRecordset(void)”: 是抽象的
    1>        c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxdb.h(1072) : 参见“CRecordView::OnGetRecordset”的声明
    1>d:\my documents\visual studio 2008\projects\dbsample\dbsample\orderview.cpp(45) : error C2039: “GetRecordset”: 不是“COrderView”的成员
    1>        d:\my documents\visual studio 2008\projects\dbsample\dbsample\orderview.h(6) : 参见“COrderView”的声明
    1>d:\my documents\visual studio 2008\projects\dbsample\dbsample\orderview.cpp(47) : error C2065: “m_pSet”: 未声明的标识符
    1>d:\my documents\visual studio 2008\projects\dbsample\dbsample\orderview.cpp(48) : error C2065: “m_pSet”: 未声明的标识符
    1>d:\my documents\visual studio 2008\projects\dbsample\dbsample\orderview.cpp(52) : error C2509: “OnGetRecordset”: 成员函数没有在“COrderView”中声明
    1>        d:\my documents\visual studio 2008\projects\dbsample\dbsample\orderview.h(6) : 参见“COrderView”的声明
    1>生成日志保存在“file://d:\My Documents\Visual Studio 2008\Projects\DBSample\DBSample\Debug\BuildLog.htm”
    1>DBSample - 5 个错误,0 个警告
    ========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========