现有代码如下:
void fun()
{ Recordset reTree(&m_database);
strSQL="SELECT * FROM TreeItem where ParentItem like '%中国%" ;
if(reTree.IsOpen())
reTree.Close();
reTree.Open(CRecordset::forwardOnly,strSQL,CRecordset::readOnly);
if (!(reTree.IsEOF()))
{
TreeSumRecordCount(strValue)
}
}
void TreeSumRecordCount(CString strValue)
{
CRecordset reTree(&m_database); //用于创建一个查询记录集
strSQL="SELECT * FROM TreeItem where ParentItem like '%北京%" ;
if(reTree.IsOpen())
reTree.Close();
reTree.Open(CRecordset::forwardOnly,strSQL);
}
我是想两个函数都使用一个m_database,程序运行到函数TreeSumRecordCount中的时候,在rsTree.Open 时,出现异常:连接占线导致另一个 hstmt
请问如何解决这个问题?谢谢
void fun()
{ Recordset reTree(&m_database);
strSQL="SELECT * FROM TreeItem where ParentItem like '%中国%" ;
if(reTree.IsOpen())
reTree.Close();
reTree.Open(CRecordset::forwardOnly,strSQL,CRecordset::readOnly);
if (!(reTree.IsEOF()))
{
TreeSumRecordCount(strValue)
}
}
void TreeSumRecordCount(CString strValue)
{
CRecordset reTree(&m_database); //用于创建一个查询记录集
strSQL="SELECT * FROM TreeItem where ParentItem like '%北京%" ;
if(reTree.IsOpen())
reTree.Close();
reTree.Open(CRecordset::forwardOnly,strSQL);
}
我是想两个函数都使用一个m_database,程序运行到函数TreeSumRecordCount中的时候,在rsTree.Open 时,出现异常:连接占线导致另一个 hstmt
请问如何解决这个问题?谢谢
我这里用的Recordset是没有帮定的?有没有一个解决方法呢?
仔细看了一下,感觉你的SQL语句好象不对
U{{{PPPP
?????是不是在ODBC中不能多个记录连接到一个数据源上?
有个%好象不是标准字符,而且还差个'
%好像说的ACCESS数据库中的通配符。应该没错的,
laiyiling(陌生人_专注于MS技术):
" 应该是你的两个CRecordset对象的名字都一样的问题吧,换个不同的名字试"
不是名字相同,他们不是一个函数,不影响,如果具有递规调用,也无法换名字,而且换名字我是试过的,也不行。
请大家看看还有办法,谢谢!
我是个初学者,恰好刚刚解决这个问题, 虽然我还有大堆的问题等待别人回答
:(
问题的关键是定义CRecordset对象要用指针:
先定义好两个类 seta,setb,都从CRecordset中派生(用向导做出来)
seta *one;
setb *two;
CDatabase m_db; one = new seta(&m_db);
two = new setb(&m_db);
CString strConnect;
strConnect = one->GetDefaultConnect();
m_db.Open(NULL,FALSE,FALSE,strConnect,FALSE);
one->Open();
two->Open();
剩下的就是你自己的代码怎么修改了还有啊, 别忙着走, 我还有个问题:
普通的一个记录集
class seta:public CRecordset;
{...}
seta a;
a.open(...)
a.m_myv1 = newvalue1;
a.m_myv2 = newvalue2;
...
a.edit();
a.update();但打开库,结果没有变
a.edit()应该在
a.m_myv1 = newvalue1;
a.m_myv2 = newvalue2;
之前吧,你这样使用没出现异常?
没有异常, 异常的平静。 呵呵
变更一下edit() 次序就好了。