AfxOleInit();//这就是初始化COM库
_ConnectionPtr pConn;
if (FAILED(pConn.CreateInstance("ADODB.Connection")))
{
AddResult("Create Instance failed!");
return -1;
}
CString strSRC; 
strSRC="Driver=SQL Server;Server="; 
strSRC+="192.168.0.1"; 
strSRC+=";Database="; 
strSRC+="mydb"; 
strSRC+=";UID=sa;PWD="; CString strSQL = "Insert into AlbumLibs(AlbumLib_Id,AlbumLib_Albumserialno,AlbumLib_AlbumName,AlbumLib_AlbumDate,AlbumLib_AlbumDescr)values(3,'123456','male','2009-09-18','truurtyu')"; 
_variant_t varSRC(strSRC); 
_variant_t varSQL(strSQL); 
_bstr_t bstrSRC(strSRC); 
if (FAILED(pConn->Open(bstrSRC,"","",-1))) 

AddResult("Can not open Database!"); 
pConn.Release(); 

COleVariant vtOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR); 
_variant_t  RecordsAffected; 
pConn->Execute(_bstr_t(strSQL),&RecordsAffected,adCmdText); 
pConn.Release(); 
return 1;
pConn->Execute(_bstr_t(strSQL),&RecordsAffected,adCmdText); 
出错!!!!!!!!!!!!!!!!!!
First-chance exception in AddSongInfo.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception. 

解决方案 »

  1.   

    最后一句出错啊,我写了啊!!!!!pConn->Execute(_bstr_t(strSQL),&RecordsAffected,adCmdText); 
    出错!!!!!!!!!!!!!!!!!! 
      

  2.   

    用try....catch.把异常打出来看.
      

  3.   

    楼上正解,打出异常信息.
    try
    {
    ....
    }
    catch( _com_error &e)
    {
     _bstr_t str = e.ErrorMessage();
     _bstr_t str1 = e.Description();
    }
      

  4.   

    一般执行SQL语句的时候都要加上异常处理。BOOL CMyDB::Execute( CString strSql)
    {
    BOOL bResult = FALSE;
    try
    {
    _variant_t RecordsAffected; m_pConnection->Execute((LPCTSTR)strSql,&RecordsAffected,0); bResult = TRUE; }
    catch(_com_error e)///捕捉异常
    {
    CString errormessage;
    errormessage.Format("SQL执行失败!\r\n错误信息:%s SQL:%s",(char*)(e.Description()),(LPCTSTR)strSql);
    CLog::Log(errormessage);
    } return bResult;
    }