Re: CDaoRecordset derived class
CDaoRecordset is deprecated, meaning that you should not use it.
Is there a reason you don't want to use CRecrodset?
AliR.
"GT" <ContactGT_remove_@hotmail.com> wrote in message
news:00eff1c7$0$25857$c3e8da3@news.astraweb.com...
I can't get the wizard to add CDaoRecordset derived classes for me - it
won't put the base class as an option on the list. I have tried the MFC
ODBC Consumer option, but got very lost in there! So I have tried to do it
by hand and the result is that it doesn't work! Can someone cast their eye
over the following and suggest why it doesn't er... work !. It fails in the
DaoRecordset::GetDataAndFixupNulls() method as it opens the recordSet (2nd
line of my code below) a 1 is returned from EOF(), which obviously suggests
end of file, but why? There are records in the database, so where am I
going wrong? My datatypes perhaps?
Thanks in advance and here are the details:
The 11 fields in the database table are these (name + type):
id autonumber
name Text
description Memo
included Yes/No
container Number
idNumber Memo
document Memo
priority Number
effort Number
cost Number
pool Number
My 4 lines of code that are supposed to initiates the transfer:
CDAORecordset_ProductionArtifacts recordSet(m_dbase);
recordSet.Open(dbOpenTable);
if (!recordSet.IsOpen())
return;
****Header file start****
#pragma once
// CDAORecordset_ProductionArtifacts command target
class CDAORecordset_ProductionArtifacts : public CDaoRecordset
{
public:
CDAORecordset_ProductionArtifacts(CDaoDatabase *pDatabase = NULL);
virtual ~CDAORecordset_ProductionArtifacts();
long m_lID;
CString m_sName;
CString m_sDesc;
BOOL m_bIncluded;
long m_lContainer;
CString m_sID;
CString m_sDocument;
long m_lPriority;
double m_dEffort;
double m_dCost;
int m_iPool;
virtual void DoFieldExchange(CFieldExchange* pFX); // RFX support
virtual CString GetDefaultSQL(); // Default SQL for Recordset
};
****Header file end****
****CPP file start****
// DAORecordset_ProductionArtifacts.cpp : implementation file
//
#include "stdafx.h"
#include "DAORecordset_ProductionArtifacts.h"
// CDAORecordset_ProductionArtifacts
CDAORecordset_ProductionArtifacts::CDAORecordset_ProductionArtifacts(CDaoDatabase
*pDatabase)
: CDaoRecordset(pDatabase)
{
m_lID = 0;
m_sName = _T("");
m_sDesc = _T("");
m_bIncluded = FALSE;
m_lContainer = 0;
m_sID = _T("");
m_sDocument = _T("");
m_lPriority = 1;
m_dEffort = 0.0;
m_dCost = 0.0;
m_iPool = 100;
m_nFields = 11;
}
CDAORecordset_ProductionArtifacts::~CDAORecordset_ProductionArtifacts() {}
void CDAORecordset_ProductionArtifacts::DoFieldExchange(CFieldExchange*
pFX)
{
//{{AFX_FIELD_MAP(CDAORecordset_ProductionArtifacts)
pFX->SetFieldType(CFieldExchange::inputParam);
RFX_Long(pFX, _T("[id]"), m_lID);
RFX_Text(pFX, _T("[name]"), m_sName);
RFX_Text(pFX, _T("[description]"), m_sDesc);
RFX_Bool(pFX, _T("[included]"), m_bIncluded);
RFX_Long(pFX, _T("[container]"), m_lContainer);
RFX_Text(pFX, _T("[idNumber]"), m_sID);
RFX_Text(pFX, _T("[document]"), m_sDocument);
RFX_Long(pFX, _T("[priority]"), m_lPriority);
RFX_Double(pFX, _T("[effort]"), m_dEffort);
RFX_Double(pFX, _T("[cost]"), m_dCost);
RFX_Int(pFX, _T("[pool]"), m_iPool);
//}}AFX_FIELD_MAP
}
CString CDAORecordset_ProductionArtifacts::GetDefaultSQL()
{
return _T("[TEjob]");
}
****CPP file end****