int QoreSQLStatement::prepare(const QoreString& n_str, const QoreListNode* args, ExceptionSink* xsink) { DBActionHelper dba(*this, xsink); if (!dba) return -1; if (checkStatus(xsink, dba, STMT_IDLE, "prepare")) return -1; if (prepareArgs(false, n_str, args, xsink)) return -1; return 0; }
long CSecurityProfile::GetMultiple(MULTIGE_FILTER* pFilrer, DBA_MAXKEY* pKey) { EgStd::CEgTracingClass::TraceStatic(enlogSubs, __FUNCTION__ , _T("SecurityProfile GetMultiple Enter %s"), _T(pKey->dbaKey.symbol)); long lRet = 0; try { INT nRecLen = sizeof(MULTIGE_FILTER); INT nKeyLen = sizeof(DBA_MAXKEY); lRet = dba(&m_blk, DBA_MULTI_GET_EQUAL, pKey, &nKeyLen, pFilrer, &nRecLen, 0); if(lRet) { //return lRet; EgStd::CEgTracingClass::TraceStatic(enlogSubs, __FUNCTION__ , _T("SecurityProfile GetMultiple Return %d"), lRet); } else { EgStd::CEgTracingClass::TraceStatic(enlogSubs, __FUNCTION__ , _T("SecurityProfile GetMultiple Infinite Wait %s"), _T(pKey->dbaKey.symbol)); dba(&m_blk, DBA_WAIT_FOR_STREAM_TERMINATE, NULL, 0, NULL, 0, DBAX_INFINITE_WAIT); } } _CATCH_UNHANDLED_EXCEPTION; EgStd::CEgTracingClass::TraceStatic(enlogSubs, __FUNCTION__ , _T("SecurityProfile GetMultiple Exit %s"), _T(pKey->dbaKey.symbol)); return lRet; }
long CStream::CreateStream(short nKeyNum) { m_streamFilter.pUser = this; // object pointer m_streamFilter.nUserStatus = FALSE; // Initialize my status flags m_streamFilter.nCreateFlags = 0; // Thread Creation Flags m_streamFilter.nCount = -1; m_streamFilter.nProcStatus = 0; TerminateStream(); ResetEvent(m_hCompleteEvent); m_bTerminate = false; int nKeyLen = sizeof (DBA_KEYS); int nRecLen = sizeof (DB_STREAM_FILTER); return dba(m_pBlk, m_nFunc, m_pDbaKey, &nKeyLen, &m_streamFilter, &nRecLen, nKeyNum); }
void CStream::TerminateStream() { if (m_streamFilter.hThread != 0) { m_bTerminate = true; dba(m_pBlk, DBA_TERMINATE_STREAM_FUNCTION, 0, 0, 0, 0, 0); if (::WaitForSingleObject(m_streamFilter.hThread, HFC_TIMEOUT) == WAIT_TIMEOUT) { _ASSERTE(FALSE); SetEvent(m_hCompleteEvent); ::TerminateThread(m_streamFilter.hThread, -1); } ::CloseHandle(m_streamFilter.hThread); m_streamFilter.hThread = 0; } m_nMissCount = 0; }
void QoreSQLStatement::deref(ExceptionSink* xsink) { if (ROdereference()) { char cmd = DAH_NOCHANGE; //printd(5, "QoreSQLStatement::deref() deleting this=%p cmd=%s\n", this, DAH_TEXT(cmd)); { DBActionHelper dba(*this, xsink, cmd); if (dba) closeIntern(xsink); } dsh->helperDestructor(this, xsink); if (prepare_args) prepare_args->deref(xsink); delete this; } }
///////////////////////////////////////////////////////////////////////////// // Länge eines Textmerkmales bestimmen HRESULT GetTextMerkmalLen (HPROJECT hPr, long madr, long *plLen) { DB_ADDR dba(hPr); struct kdbt dbt_satz; // Satz der Datei '.dbt' int RC; // Kein Text da (Textlänge gleich 0) if (0 == madr) { *plLen = 0; return S_OK; } dba.file_no = FDBT; dba.rec_no = madr; *plLen = 0; __ReadHR (dba, dbt_satz); *plLen = dbt_satz.llen; if (*plLen != -1L) *plLen *= sizeof(INT); // wirkliche Textlänge return S_OKAY; }
long CGroupPrice::_GetOptions(const _QuoteUpdateParams& Params, GroupRequestType enRequest) { EgLib::CEgLibTraceManager::Trace(LogDebug, __FUNCTION__ , _T("CGroupPrice::_GetOptions Enter %s"), _T(m_dbaKey.dbaKey.symbol) ); long nStatus = 0; char szKey[MAX_TICKER*2+1]={0}; try { ATLTRACE(_T("_GetOptions Enter\n")); _CancelOptions(); char szSymbol[MAX_LENGTH + 1]; ZeroMemory(szSymbol,sizeof(szSymbol)); CUtilities::KeyToString(&m_dbaKey.dbaKey, szSymbol, MAX_LENGTH); m_bsUndSymbol = szSymbol; m_bIsGotOptions = false; m_bIsGotError = false; m_bTerminate = false; m_enRequestType = enRequest; const_cast<_QuoteUpdateParams&>(Params).CopyTo(m_vtRequest); int nRecLen = sizeof(OPTIONS_FILTER); int nKeyLen = sizeof(DBA_KEY); m_optionsFilter.flags.mask = 0; if (m_bComposites) m_optionsFilter.flags.mask += DBA_OFM_COMPOSITES; if (m_bRegionals) m_optionsFilter.flags.mask += DBA_OFM_REGIONALS; m_optionsFilter.flags.mask += DBA_OFM_CALLS; m_optionsFilter.flags.mask += DBA_OFM_PUTS; m_optionsFilter.months = -1; m_optionsFilter.count = -1; m_optionsFilter.nRecLen = sizeof(DBA_OPTIONS_FILTER_RECORD); ResetEvent(m_hTerminateGroupOption); CUtilities::KeyToString(&m_dbaKey.dbaKey, szKey, MAX_TICKER*2); bool bSubscribe = (m_enRequestType != enGroupRequestLastQuote); long nFunc = bSubscribe ? DBA_GET_OPTIONS | DBAX_INTEREST : DBA_GET_OPTIONS; nStatus = dba(&m_blk, nFunc, &m_dbaKey.dbaKey, &nKeyLen, &m_optionsFilter, &nRecLen, 0); if (nStatus == DBA_ERR_NO_ERROR) { EgLib::CEgLibTraceManager::Trace(LogDebug, __FUNCTION__, _T("[%s]\t CGroupPrice::_GetOptions dba returns NO_ERROR"), m_strUserName.c_str()); HANDLE hEvents[] = {m_hTerminateGroupOption, m_optionsFilter.hThread}; DWORD dw = EgLib::WaitWithEvents(2, hEvents); if(m_bTerminate) { EgLib::CEgLibTraceManager::Trace(LogInfo, __FUNCTION__ , _T("[%s]\t nStatus = DBA_TERMINATED"), m_strUserName.c_str()); nStatus = DBA_TERMINATED; } m_bTerminate = true; if(dw == (WAIT_OBJECT_0+1)) EgLib::CEgLibTraceManager::Trace(LogSubs, __FUNCTION__ , _T("[%s]\t CGroupPrice::_GetOptions Succeeded for %s"), m_strUserName.c_str(), szKey ); else EgLib::CEgLibTraceManager::Trace(LogSubs, __FUNCTION__ , _T("[%s]\t CGroupPrice::_GetOptions Terminate for %s"), m_strUserName.c_str(), szKey ); } else EgLib::CEgLibTraceManager::Trace(LogSystem, __FUNCTION__ , _T("[%s]\t Failed to get options for %s"), m_strUserName.c_str(), szKey ); if(m_optionsFilter.hThread) { //::CloseHandle(m_optionsFilter.hThread); m_optionsFilter.hThread = 0; } ATLTRACE(_T("_GetOptions Exit\n")); } catch (...) { EgLib::CEgLibTraceManager::Trace(LogFaults, __FUNCTION__ , _T("[%s]\t Unknown exception while %s processing"), m_strUserName.c_str(), szKey ); } EgLib::CEgLibTraceManager::Trace(LogDebug, __FUNCTION__ , _T("CGroupPrice::_GetOptions Exit %s"), _T(m_dbaKey.dbaKey.symbol) ); return nStatus; }
wb_object wb_session::copyObject(wb_object o, wb_destination d, wb_name name) { wb_orep* orep = 0; if (isReadonly()) throw wb_error_str("ReadOnlySession"); validateDestination(d, o.cid()); if (evenSts()) throw wb_error(sts()); wb_object parent; switch (d.code()) { case ldh_eDest_IntoFirst: case ldh_eDest_IntoLast: parent = object(d.oid()); break; case ldh_eDest_After: case ldh_eDest_Before: parent = object(d.oid()).parent(); break; default: throw wb_error(LDH__NODEST); } m_sts = triggAnteCreate(parent, o.cid()); if (evenSts()) throw wb_error(sts()); m_sts = triggAnteAdopt(parent, o.cid()); if (evenSts()) throw wb_error(sts()); if (m_vrep->vid() == o.vid()) { orep = m_vrep->copyObject(&m_sts, (wb_orep*)o, d, name); if (evenSts()) throw wb_error(sts()); orep->ref(); } else { wb_cdef c = cdef(o.cid()); orep = m_vrep->createObject(&m_sts, c, d, name); orep->ref(); wb_attribute rba(o.sts(), (wb_orep*)o, "RtBody"); if (rba) { void* p = rba.value(); wb_attribute rban(m_sts, orep, "RtBody"); writeAttribute(rban, p); } wb_attribute dba(o.sts(), (wb_orep*)o, "DevBody"); if (dba) { void* p = dba.value(); wb_attribute dban(m_sts, orep, "DevBody"); writeAttribute(dban, p); } wb_attribute sba(o.sts(), (wb_orep*)o, "SysBody"); if (sba) { void* p = sba.value(); wb_attribute sban(m_sts, orep, "SysBody"); writeAttribute(sban, p); } } m_srep->update(); wb_object onew = wb_object(m_sts, orep); orep->unref(); ldh_sEvent* ep = m_srep->eventStart(onew.oid(), ldh_eEvent_ObjectCreated); m_srep->eventNewFamily(ep, onew); triggPostCreate(onew); triggPostAdopt(parent, onew); m_srep->eventSend(ep); return onew; }
long CGroupPrice::_GetOptions(const _QuoteUpdateParams& Params, GroupRequestType enRequest) { EgStd::CEgTracingClass::TraceStatic(enlogSubs, __FUNCTION__ , _T("CGroupPrice::_GetOptions Enter %s"), _T(m_dbaKey.dbaKey.symbol) ); long nStatus = 0; try { ATLTRACE(_T("_GetOptions Enter\n")); _CancelOptions(); char szSymbol[MAX_LENGTH + 1]; ZeroMemory(szSymbol,sizeof(szSymbol)); KeyToString(&m_dbaKey.dbaKey, szSymbol, MAX_LENGTH); m_szUndSymbol = szSymbol; m_bIsGotOptions = false; m_bIsGotError = false; m_bTerminate = false; m_enRequestType = enRequest; const_cast<_QuoteUpdateParams&>(Params).CopyTo(m_vtRequest); int nRecLen = sizeof(OPTIONS_FILTER); int nKeyLen = sizeof(DBA_KEY); m_optionsFilter.flags.mask = 0; if (m_bComposites) m_optionsFilter.flags.mask += DBA_OFM_COMPOSITES; if (m_bRegionals) m_optionsFilter.flags.mask += DBA_OFM_REGIONALS; m_optionsFilter.flags.mask += DBA_OFM_CALLS; m_optionsFilter.flags.mask += DBA_OFM_PUTS; m_optionsFilter.months = -1; m_optionsFilter.count = -1; m_optionsFilter.nRecLen = sizeof(DBA_OPTIONS_FILTER_RECORD); bool bSubscribe = (m_enRequestType != enGroupRequestLastQuote); long nFunc = bSubscribe ? DBA_GET_OPTIONS | DBAX_INTEREST : DBA_GET_OPTIONS; nStatus = dba(&m_blk, nFunc, &m_dbaKey.dbaKey, &nKeyLen, &m_optionsFilter, &nRecLen, 0); if (nStatus == DBA_ERR_NO_ERROR) { EgStd::CEgTracingClass::TraceStatic(enlogSubs, __FUNCTION__ , _T("CGroupPrice::_GetOptions dba returns NO_ERROR")); EgLib::WaitWithEvents(1, &m_optionsFilter.hThread); if(m_bTerminate) { EgStd::CEgTracingClass::TraceStatic(enlogSubs, __FUNCTION__ , _T("CGroupPrice::_GetOptions nStatus = DBA_TERMINATED")); nStatus = DBA_TERMINATED; } } if(m_optionsFilter.hThread) { //::CloseHandle(m_optionsFilter.hThread); m_optionsFilter.hThread = 0; } ATLTRACE(_T("_GetOptions Exit\n")); } _CATCH_UNHANDLED_EXCEPTION; EgStd::CEgTracingClass::TraceStatic(enlogSubs, __FUNCTION__ , _T("CGroupPrice::_GetOptions Exit %s"), _T(m_dbaKey.dbaKey.symbol) ); return nStatus; }
static void dbaCallFunc(const iocshArgBuf *args) { dba(args[0].sval);}