使用DAO为什么会出错?
主窗口类中声明CDaoDatabase, 视图类中声明CDaoRecordset,但运行时程序总出错?
在主窗口中声明CDaoDatabase m_daoDB; 在构造,析构中打开,关闭数据库
构造函数中
m_daoDB.Open("zl.mdb");
析构函数中
m_daoDB.Close();
在视图类中声明CDaoRecordset m_daoRS; 在构造,析构中打开,关闭记录集。但总是出现运行程序异常(编译没有错误)
构造中:
//框架窗口类
m_daoRS.m_pDatabase = &(((CMainFrame*)AfxGetMainWnd())->m_daoDB);
//加入就会出错,好像是DATABASE没有传递给RECORDSET?
m_daoRS.Open(AFX_DAO_USE_DEFAULT_TYPE, "SELECT * FROM zll");
析构中:
m_daoRS.Close();
问题点数:66、回复次数:7Top
1 楼littlepig_2002(小朱)回复于 2005-06-02 15:44:07 得分 0
?Top
2 楼littlepig_2002(小朱)回复于 2005-06-02 15:58:03 得分 0
DaoRecordset的函数在VIEW视图类中的其它函数中调用就可以,如OnInitialUpdate中。这是为什么?是不是因为录VIEW视图构造函数调用时,DAODATABASE还没有创建?Top
3 楼koko1998(高价购买火车票)回复于 2005-06-02 16:39:18 得分 11
/* レコードセットオブジェクト */
CDaoRecordset* pSet = new CDaoRecordset(m_database);
try
{
/* クエリーを実行する */
pSet->Open(dbOpenDynaset,query,0);
............
}
catch (CDaoException* e) /* データベースのエラーを処理する */
{
if ( m_exception != NULL ) /* m_exceptionが NULL でない場合は、*/
{ /* オブジェクトを削除する */
m_exception->Delete();
}
m_exception = e; /* エラーオブジェクトのアドレスを m_exceptionに設定 */
delete pSet;
pSet = NULL;
return NULL;
}Top
4 楼dfyang()回复于 2005-06-02 19:44:14 得分 22
m_daoRS.m_pDatabase = &(((CMainFrame*)AfxGetMainWnd())->m_daoDB);
这句有问题,视图类还没构造出来就AfxGetMainWnd()是不行的
Top
5 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-06-02 21:34:33 得分 11
换个调用的位置Top
6 楼xyw2278(启明星)回复于 2005-06-02 22:25:13 得分 11
m_daoRS.m_pDatabase = &(((CMainFrame*)AfxGetMainWnd())->m_daoDB);
换到视图类OnInitUpdate中去Top
7 楼xyw2278(启明星)回复于 2005-06-02 22:25:46 得分 11
m_daoRS.Open(AFX_DAO_USE_DEFAULT_TYPE, "SELECT * FROM zll");
也是Top
相关问题
- 为什么DAO会出错?
- ▲▲▲▲▲▲请问:为什么使用response.charset出错?
- 请教为什么 调用 DAO 的FindFirst函数总是出错?
- 使用StringGrid时,为什么StringGrid1.Cols[0].insert(10,'zhang');出错?
- 为什么我使用API函数SETWINDOWPOS时出错?
- 在使用TiniFile的ReadString中为什么会出错
- 使用webbrowser出错“List index out of bounds(0) ”为什么!!!!
- ADOQUERY 中使用sql语句insert为什么会出错呢?
- 为什么我使用资源文件出错?
- 为什么我使用资源文件出错?




