| 2929 | |
| 2930 | |
| 2931 | void Batch::appendBlobData(CheckStatusWrapper* status, unsigned length, const void* inBuffer) |
| 2932 | { |
| 2933 | try |
| 2934 | { |
| 2935 | // Check and validate handles, etc. |
| 2936 | if (!stmt) |
| 2937 | { |
| 2938 | Arg::Gds(isc_bad_req_handle).raise(); |
| 2939 | } |
| 2940 | |
| 2941 | // Policy check |
| 2942 | switch (blobPolicy) |
| 2943 | { |
| 2944 | case IBatch::BLOB_ID_USER: |
| 2945 | case IBatch::BLOB_ID_ENGINE: |
| 2946 | break; |
| 2947 | default: |
| 2948 | (Arg::Gds(isc_batch_policy) << "appendBlobData").raise(); |
| 2949 | } |
| 2950 | |
| 2951 | Rsr* statement = stmt->getStatement(); |
| 2952 | CHECK_HANDLE(statement, isc_bad_req_handle); |
| 2953 | Rdb* rdb = statement->rsr_rdb; |
| 2954 | CHECK_HANDLE(rdb, isc_bad_db_handle); |
| 2955 | rem_port* port = rdb->rdb_port; |
| 2956 | RefMutexGuard portGuard(*port->port_sync, FB_FUNCTION); |
| 2957 | |
| 2958 | // Store blob data |
| 2959 | putSegment(length, inBuffer); |
| 2960 | } |
| 2961 | catch (const Exception& ex) |
| 2962 | { |
| 2963 | ex.stuffException(status); |
| 2964 | } |
| 2965 | } |
| 2966 | |
| 2967 | |
| 2968 | void Batch::addBlobStream(CheckStatusWrapper* status, unsigned length, const void* inBuffer) |
nothing calls this directly
no test coverage detected