| 5069 | |
| 5070 | |
| 5071 | ITransaction* 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 | |
| 5117 | JResultSet* JStatement::openCursor(CheckStatusWrapper* user_status, ITransaction* transaction, |
no test coverage detected