想用ADO封装一个操作数据的类,编译能过,运行显示“0xC0000005:Access Violation”解决方案

想用ADO封装一个操作数据的类,编译能过,运行显示“0xC0000005:Access Violation”
自己定义的类的头文件:
class   AdoAccess
{
        AdoAccess();
        ~AdoAccess();

public:
      int     nResultRow;  
      int     nResultCol;
      CString   pData;  
     
      bool   OpenDataBase(CString   DsnName,CString   sUserID,CString   sPassword);
      int   Select(CString   Sql);   //执行SQL查询语句,结果放在数组pData中
      int   Excute(CString   Sql);   //执行无返回值得SQL语句
      bool   CloseDataBase();   //关闭数据库连接

private:
      _ConnectionPtr       m_pConnection;   //定义连接指针
      _RecordsetPtr         m_pRecordset;
};
**********************************************************
执行到此处就出弹出对话框,程序中止。
bool  
AdoAccess::OpenDataBase(CString   DsnName,CString   sUserID,CString   sPassword)
{
     
    //   m_pConnection.CreateInstance(__uuidof(Connection));
    //   pConnection-> Open(strCnn, " ", " ",adConnectUnspecified);

    try
    {
        //就是这一句,奇怪。
        HRESULT   hr=m_pConnection.CreateInstance( "ADODB.Connection ");//创建连接对象
        hr=m_pConnection-> Open((_bstr_t)DsnName,(_bstr_t)sUserID,(_bstr_t)sPassword,adOpenUnspecified);   //连接数据库
return   true;
    }
    catch(_com_error   e)
    {
      CString   errormessage;
      errormessage.Format( "连接数据库失败!/r/n错误信息:%s ",e.ErrorMessage());
      //AfxMessageBox(errormessage);///显示错误信息
      return   false;
    }
}
**************************************
这是主程序对它的调用:
#include   "stdafx.h "
#include   "AdoAccess.h "

int   main(int   argc,   char*   argv[])
{
CString   sql   =   "select   *   from   test; ";
CString   DNSname   =   "shpdb ";
        CString   User   =   "sa ";    
        CString   Passwords   =   "sa ";

        AdoAccess     *Adodata   =   NULL;
        Adodata-> OpenDataBase(DNSname,User,Passwords);
Adodata-> Select(sql);  

return   0;
}
***********************************
  CoInitialize(NULL);初始化COM环境我在类的构造函数里加了。

想不出来是什么地方出了问题,m_pConnection在构造函数里设为NULL了,不设也一样出此问题。问题的全部消息是“Unhandled   exception   in   DataAccess.exe:0xC0000005:Access   Violation”
请高手赐教!


------解决方案--------------------
AdoAccess *Adodata = NULL;
Adodata-> OpenDataBase(DNSname,User,Passwords);《=====你没有new AdoAccess 对象就使用指针了
------解决方案--------------------
差个public: