| 731 | } |
| 732 | |
| 733 | void IscBlob::open(thread_db* tdbb, Transaction& tran, const dsc& desc, const UCharBuffer* bpb) |
| 734 | { |
| 735 | fb_assert(!m_handle); |
| 736 | fb_assert(sizeof(m_blob_id) == desc.dsc_length); |
| 737 | |
| 738 | FB_API_HANDLE& h_db = m_iscConnection.getAPIHandle(); |
| 739 | FB_API_HANDLE& h_tran = ((IscTransaction&) tran).getAPIHandle(); |
| 740 | |
| 741 | memcpy(&m_blob_id, desc.dsc_address, sizeof(m_blob_id)); |
| 742 | |
| 743 | FbLocalStatus status; |
| 744 | { |
| 745 | EngineCallbackGuard guard(tdbb, m_iscConnection, FB_FUNCTION); |
| 746 | |
| 747 | ISC_USHORT bpb_len = bpb ? bpb->getCount() : 0; |
| 748 | const ISC_UCHAR* bpb_buff = bpb ? bpb->begin() : NULL; |
| 749 | |
| 750 | m_iscProvider.isc_open_blob2(&status, &h_db, &h_tran, &m_handle, &m_blob_id, |
| 751 | bpb_len, bpb_buff); |
| 752 | } |
| 753 | if (status->getState() & IStatus::STATE_ERRORS) { |
| 754 | m_iscConnection.raise(&status, tdbb, "isc_open_blob2"); |
| 755 | } |
| 756 | fb_assert(m_handle); |
| 757 | } |
| 758 | |
| 759 | void IscBlob::create(thread_db* tdbb, Transaction& tran, dsc& desc, const UCharBuffer* bpb) |
| 760 | { |
nothing calls this directly
no test coverage detected