| 105 | |
| 106 | |
| 107 | ISC_STATUS API_ROUTINE isc_array_get_slice(ISC_STATUS* status, |
| 108 | FB_API_HANDLE* db_handle, |
| 109 | FB_API_HANDLE* trans_handle, |
| 110 | ISC_QUAD* array_id, |
| 111 | const ISC_ARRAY_DESC* desc, |
| 112 | void* array, |
| 113 | SLONG* slice_length) |
| 114 | { |
| 115 | /************************************** |
| 116 | * |
| 117 | * i s c _ a r r a y _ g e t _ s l i c e |
| 118 | * |
| 119 | ************************************** |
| 120 | * |
| 121 | * Functional description |
| 122 | * |
| 123 | **************************************/ |
| 124 | UCHAR sdl_buffer[512]; |
| 125 | |
| 126 | SSHORT sdl_length = sizeof(sdl_buffer); |
| 127 | UCHAR* sdl = sdl_buffer; |
| 128 | |
| 129 | if (gen_sdl(status, desc, &sdl_length, &sdl, &sdl_length, true)) |
| 130 | return status[1]; |
| 131 | |
| 132 | // SD: I do not complain but in ibase.h sdl is a plain char in functions' |
| 133 | // declaration while it is UCHAR in the functions' implementations. Damned legacy! |
| 134 | isc_get_slice(status, db_handle, trans_handle, array_id, |
| 135 | sdl_length, sdl, |
| 136 | 0, NULL, *slice_length, array, slice_length); |
| 137 | |
| 138 | if (sdl != sdl_buffer) |
| 139 | gds__free(sdl); |
| 140 | |
| 141 | return status[1]; |
| 142 | } |
| 143 | |
| 144 | |
| 145 | void iscArrayLookupBoundsImpl(Why::YAttachment* attachment, |