Создать набор записей можно разными путями. Вот схема:
Итак, объект CDaoRecordset всегда создается на основе CDaoDatabase:
CDaoRecordset( CDaoDatabase* pDatabase = NULL );
Дальше следует функция Open(). Эта функций может использовать для создания набора записей три варианта.
virtual void Open( int nOpenType = AFX_DAO_USE_DEFAULT_TYPE, LPCTSTR lpszSQL = NULL, int nOptions = 0 ); throw( CDaoException, CMemoryException ); virtual void Open( CDaoTableDef* pTableDef, int nOpenType = dbOpenTable, int nOptions = 0 ); throw( CDaoException, CMemoryException ); virtual void Open( CDaoQueryDef* pQueryDef, int nOpenType = dbOpenDynaset, int nOptions = 0 ); throw( CDaoException, CMemoryException );
В зависимости от того на основе чего создается набор записей. Если есть Open() на 100% должен быть Close() и он есть:
virtual void Close( ); throw( CDaoException );
Давайте построим набор записей на основе SQL запроса:
if (!cDaoDB.IsOpen()) return FALSE; cDaoRset = new CDaoRecordset(&cDaoDB); cDaoRset->Open( AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM TABLE1");
Проверяем, что таблица создана, создаем новый объект и открываем набор записей.