CRecordset派生类在调用open()的时候,发生死锁,就是open函数执行没有结束。
Open(AFX_DB_USE_DEFAULT_TYPE, _T("select * from tablename"));
就是这么一个简单的语句。不过不是每次都死掉。一般情况下都会正常查询出结果。数据库中的表也和派生类构造的完全吻合。死掉的时候,我debug进去发现是到了dbcore.cpp文件BOOL CRecordset::AllocHstmt()函数的AFX_SQL_SYNC(::SQLAllocStmt(m_pDatabase->m_hdbc, &m_hstmt));语句死掉的。就是在该语句F10之后,再也没有反应了。
请问大家这是怎么回事?
Open(AFX_DB_USE_DEFAULT_TYPE, _T("select * from tablename"));
就是这么一个简单的语句。不过不是每次都死掉。一般情况下都会正常查询出结果。数据库中的表也和派生类构造的完全吻合。死掉的时候,我debug进去发现是到了dbcore.cpp文件BOOL CRecordset::AllocHstmt()函数的AFX_SQL_SYNC(::SQLAllocStmt(m_pDatabase->m_hdbc, &m_hstmt));语句死掉的。就是在该语句F10之后,再也没有反应了。
请问大家这是怎么回事?
数据库里面表和CRecordset没问题。关联都对。
因为不是每次都这样错,debug的时候才出现。直接运行的时候不会。
如果判断的话,不应该判断是否为空,而是判断记录集是否关闭
------------
会不会是时间问题?
有时候需要调试,所以才会遇到这个问题,唉,麻烦啊。