/// 如果这样调用可能会有内存泄漏 dbManager * pMP = GetPubDBManager(DictDb);
CADORecordSet rs;
CAdoConnection * pConnP = pMP->GetDbConnect();
//取得数据源
rs.SetAdoConnection(pConnP);不知道大家看出问题了没有,如何改正???
CADORecordSet rs;
CAdoConnection * pConnP = pMP->GetDbConnect();
//取得数据源
rs.SetAdoConnection(pConnP);不知道大家看出问题了没有,如何改正???
2.dbManager没有看到定义。
dbManager 是一个管理数据库的对象
dbManager * Exe::GetPubDBManager(DBType type)
{
switch(type)
{
case WorkDb:
return &m_Pub_WorkDb;
break;
case DictDb:
return &m_Pub_DictDb;
break;
case NewsDb:
return &m_Pub_NewsDb;
break;
case DataDb1:
return &m_Pub_DataDb1;
break;
case DataDb2:
return &m_Pub_DataDb2;
break;
case DataDb3:
return &m_Pub_DataDb3;
break;
case DataDb4:
return &m_Pub_DataDb4;
break;
case BbsDb:
return &m_Pub_BbsDb;
break;
default:
return NULL;
break;
}
}CAdoConnection * dbManager::GetDbConnect()
{
//没有连接,则打开.
if(!m_ConnDb.IsOpen())
{
OpenDB();
} if(m_ConnDb.IsOpen()==TRUE && GetState()==DBSTATE_NORMAL )
{
return &m_ConnDb;
}
else
{
return NULL;
}
}
/// 如果这样调用可能会有内存泄漏 dbManager * pMP = GetPubDBManager(DictDb);
if(pMP != NULL){
CADORecordSet rs;
CAdoConnection * pConnP = pMP->GetDbConnect();
//取得数据源
rs.SetAdoConnection(pConnP);
}
{
// 这里只是一个简单的设置新指向,之前的指针成为野指针,所指向的内存没有释放
m_pPointer = new char[strlen(NewPointer) + 1];
}MyString::MyString(const char *Content)
{
m_pPointer = new char[strlen(Content) + 1];
}