MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / execute

Method execute

src/jrd/jrd.cpp:5071–5114  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5069
5070
5071ITransaction* JStatement::execute(CheckStatusWrapper* user_status, ITransaction* apiTra,
5072 IMessageMetadata* inMetadata, void* inBuffer, IMessageMetadata* outMetadata, void* outBuffer)
5073{
5074 JTransaction* jt = NULL;
5075
5076 try
5077 {
5078 if (apiTra)
5079 jt = getAttachment()->getTransactionInterface(user_status, apiTra);
5080
5081 EngineContextHolder tdbb(user_status, this, FB_FUNCTION);
5082
5083 jrd_tra* tra = jt ? jt->getHandle() : NULL;
5084
5085 if (tra)
5086 validateHandle(tdbb, tra);
5087
5088 check_database(tdbb);
5089
5090 try
5091 {
5092 DSQL_execute(tdbb, &tra, getHandle(),
5093 inMetadata, static_cast<UCHAR*>(inBuffer),
5094 outMetadata, static_cast<UCHAR*>(outBuffer));
5095
5096 jt = checkTranIntf(getAttachment(), jt, tra);
5097 }
5098 catch (const Exception& ex)
5099 {
5100 transliterateException(tdbb, ex, user_status, "JStatement::execute");
5101 jt = checkTranIntf(getAttachment(), jt, tra);
5102 return jt;
5103 }
5104 trace_warning(tdbb, user_status, "JStatement::execute");
5105 }
5106 catch (const Exception& ex)
5107 {
5108 ex.stuffException(user_status);
5109 return apiTra;
5110 }
5111
5112 successful_completion(user_status);
5113 return jt;
5114}
5115
5116
5117JResultSet* JStatement::openCursor(CheckStatusWrapper* user_status, ITransaction* transaction,

Callers 7

gsecFunction · 0.45
EVL_validateFunction · 0.45
setInitialOptionsMethod · 0.45
EXE_looperFunction · 0.45
EVL_exprFunction · 0.45
checkCreateDatabaseGrantFunction · 0.45
evaluateMethod · 0.45

Calls 11

validateHandleFunction · 0.85
check_databaseFunction · 0.85
DSQL_executeFunction · 0.85
checkTranIntfFunction · 0.85
transliterateExceptionFunction · 0.85
trace_warningFunction · 0.85
successful_completionFunction · 0.85
DSQL_execute_immediateFunction · 0.85
getHandleMethod · 0.45
stuffExceptionMethod · 0.45

Tested by

no test coverage detected