void CImageBoardView::OnEditCopy() 
{

        CPoint ptStart(m_ptStart);
DibToClient(ptStart);

vStartX = ptStart.x;
vStartY = ptStart.y;

vStopX = m_rcRubber.right;
vStopY= m_rcRubber.bottom; HRESULT hr; 
try {             hr = m_pRecordset.CreateInstance("ADODB.Recordset");//创建Recordset对象            if(SUCCEEDED(hr))          {          hr=m_pRecordset->Open("SELECT StartX,StartY,StopX,StopY FROM PicKind",_variant_t((IDispatch*)   m_pConnection,true),adOpenStatic, adLockOptimistic , adCmdText); //创建数据集。            }  }  catch(_com_error e)///捕捉异常  { CString errormessage; errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage()); AfxMessageBox(errormessage);///显示错误信息  }
CopyToClipboard();
}
为什么 运行到 hr=m_pRecordset->Open("SELECT StartX,StartY,StopX,StopY FROM PicKind",_variant_t((IDispatch*)m_pConnection,true),adOpenStatic, adLockOptimistic , adCmdText); 就报错啊:Unhandled exception in imageboard.exe :0XC0000005 :access violation 请指教。

解决方案 »

  1.   

    CString m_strQuery;
    m_strQuery="SELECT StartX,StartY,StopX,StopY FROM PicKind";
    hr=m_pRecordset->Open((LPCSTR)m_strQuery,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic, adLockOptimistic , adCmdText); 
      

  2.   

    LS 不行。
    这是初始化的时候
    BOOL CImageBoardApp::InitInstance()
    {

    CoInitialize(NULL);
    AfxOleInit();//链接数据库
    HRESULT hr; try {       hr = m_pConnection.CreateInstance("ADODB.Connection");//创建Connection对象       if(SUCCEEDED(hr))       { m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=XinDa.mdb;Jet OLEDB:Database Password=zc","","",adModeUnknown);

       }
    }
           catch(_com_error e)///捕捉异常           {             CString errormessage;             errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());             AfxMessageBox(errormessage);///显示错误信息            } 
    AfxEnableControlContainer();
      

  3.   

    try this:
    m_pRecordset.CreateInstance(__uuidof(Recordset));
    m_pRecordset->Open("SELECT StartX,StartY,StopX,StopY FROM PicKind",
    m_pConnection.GetInterfacePtr(),
    adOpenDynamic,
    adLockOptimistic,
    adCmdText);