我的类:
CMyAdo::CMyAdo()
{
AfxOleInit();
m_pConnection.CreateInstance("ADODB.Connection");
}CMyAdo::~CMyAdo()
{
m_pConnection->Close();
}
CMyAdo::OnOpen()
{
if(m_pConnection)
{
HRESULT hr=m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb","","",adModeUnknown);
if(SUCCEEDED(hr))
return 1;
}
return 0;
}
CMyAdo::OnClose()
{
if(m_pConnection->State==adStateOpen)
{
m_pConnection->Close();
}
}
_ConnectionPtr CMyAdo::GetPtr()
{
return m_pConnection;
}
我是在Dialog中加入的一个成员:
CMyAdo m_ado;
每次都只能打开一次成功,而后面就说(读取失败)???
调试发现,好象m_pConnection 的值关闭后还是没有变,除非关闭对话框
CMyAdo::CMyAdo()
{
AfxOleInit();
m_pConnection.CreateInstance("ADODB.Connection");
}CMyAdo::~CMyAdo()
{
m_pConnection->Close();
}
CMyAdo::OnOpen()
{
if(m_pConnection)
{
HRESULT hr=m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb","","",adModeUnknown);
if(SUCCEEDED(hr))
return 1;
}
return 0;
}
CMyAdo::OnClose()
{
if(m_pConnection->State==adStateOpen)
{
m_pConnection->Close();
}
}
_ConnectionPtr CMyAdo::GetPtr()
{
return m_pConnection;
}
我是在Dialog中加入的一个成员:
CMyAdo m_ado;
每次都只能打开一次成功,而后面就说(读取失败)???
调试发现,好象m_pConnection 的值关闭后还是没有变,除非关闭对话框
不要用AfxOleInit();
不过不知道行不行。试一下吧。
if(m_pConnection->State==adStateOpen)
{
m_pConnection->Close();
}
该为以下
// 关闭ADO连接状态
if(m_pConnection->State)
m_pConnection->Close();
m_pConnection= NULL;
不是啊,我每次打开后关闭了再打开的,和服务器上最大的允许数没什么关系吧。
to qly2010:
析构的时候delete指针也不行(我试了),com组件好象不需要用户析构吧