void ExcelControllerImpl08::DoSaveDocumentAs(IDispatchPtr spDocument, const CStdString& sNewFileName, MetawallBackEnd::wsFileFormat eFormat) { if (spDocument == 0) throw Workshare::Com::ComException(_T("The word document instance was null"), E_INVALIDARG); if (MetawallBackEnd::WSEXCELDOCUMENT != eFormat) throw Workshare::Com::ComException(_T("The format specified for SaveDocumentAs was invalid."), E_INVALIDARG); Excel::_WorkbookPtr pExcelDocument = spDocument; _variant_t vtFileName(sNewFileName.c_str()); _variant_t vtFormat((long)(Excel::xlWorkbookNormal)); _variant_t vtFalse(VARIANT_FALSE); _variant_t vtEmpty(_T("")); HRESULT hr = pExcelDocument->SaveAs(&vtFileName, &vtFormat, &vtEmpty, &vtEmpty, &vtFalse, &vtFalse, Excel::xlNoChange); if (FAILED(hr)) throw Workshare::Com::ComException(_T("Failed to save the workbook with the following file name:") + sNewFileName, hr); }
long CADOUtil::RunCommand_ReturnLong(_bstr_t CmdText, CParamArray *ParamArray) { if(!CheckCurrentProcess()) throw ERR_NEW_PROCESS_DETECTED; DWORD dRet = 0; _ConnectionPtr pConn = NULL; _CommandPtr pComm = NULL; _ParameterPtr pPrm = NULL; ErrorPtr pErr = NULL; CParam* pr = NULL; _variant_t vIndex; _variant_t vValue; long ErrSQLState = 0; long ErrorCode = 0; _bstr_t bsEpmty; long count; //******************************************************************** //Connectin to Pool try { _bstr_t bstrConnString(szConnectionString); pConn.CreateInstance(__uuidof(Connection)); if(pConn == NULL) { throw(ErrorCode = ERR_UNABLE_CREATE_CONN); } pConn->ConnectionTimeout = 7; pConn->Open(bstrConnString, L"", L"", adConnectUnspecified); } catch(...) { Beep(2000,100); //m_ExternalLink.Add2Log(WL_ERROR_LEVEL1,"Unable set connection to SQL Error = Unknown"); ErrorCode = ERR_UNABLE_CREATE_CONN; } if(ErrorCode != 0) throw ErrorCode; //Execute Command try { pComm.CreateInstance(__uuidof(Command)); if(pComm == NULL) { throw(ErrorCode = ERR_UNABLE_CREATE_COMM); } pComm->ActiveConnection = pConn; pComm->CommandText = CmdText; if (ParamArray != NULL) { for (int i=0; i < ParamArray->GetSize(); i++) { pr = (*ParamArray)[i]; pPrm = pComm->CreateParameter(bsEpmty, pr->Type, pr->Direction, pr->Size, pr->Value); pComm->Parameters->Append(pPrm); } } pConn->Errors->Clear(); _variant_t vtEmpty (DISP_E_PARAMNOTFOUND, VT_ERROR); _variant_t vtEmpty2(DISP_E_PARAMNOTFOUND, VT_ERROR); _RecordsetPtr reader = pComm->Execute(&vtEmpty, &vtEmpty2, adCmdText); int nFieldCount = reader->Fields->GetCount(); if(nFieldCount > 0) { dRet = (DWORD) reader->Fields->GetItem(_variant_t((long)0))->Value; } } catch(_com_error) { try { count = pConn->Errors->Count; if(count) { vIndex = _variant_t((LONG)0); pErr = pConn->Errors->GetItem(vIndex); ErrSQLState = atol((LPCSTR)pErr->SQLState); /* //m_ExternalLink.Add2Log(WL_ERROR_LEVEL3, "SQL (LONG) Error %d [Error #%d Description \"%s\" (Source: %s)" "(SQL State: %s)](NativeError: %s)", e.Error(), pErr->Number, (LPCSTR)pErr->Description, (LPCSTR)pErr->Source, (LPCSTR)pErr->SQLState, (LPCSTR)pErr->NativeError);*/ } pConn->Close(); if (pComm->ActiveConnection != NULL) { pComm->PutRefActiveConnection(NULL); } } catch(...) { ErrSQLState = 1; } } catch(long errorCode) { //m_ExternalLink.Add2Log(WL_ERROR_LEVEL3,"SQL (LONG) Error Unable Create Command object"); pConn->Close(); throw(errorCode); } catch(...) { //m_ExternalLink.Add2Log(WL_ERROR_LEVEL3,"SQL (LONG) Error Unknown"); ErrSQLState = 1; } if(ErrSQLState) { switch(ErrSQLState) { case 23000: //Violation of PRIMARY KEY constraint throw (ErrorCode = ERR_PRIMARY_KEY_CONSTRAINT); break; default: //Code throw (ErrorCode = ERR_SQL_UNKNOWN_PROBLEM); break; } } //---------------- //Close Connection pComm->PutRefActiveConnection(NULL); pConn->Close(); return dRet; }