Интерфейс IAttachment
заменяет isc_db_handle
.
getInfo
void getInfo(StatusType* status,
unsigned itemsLength,
const unsigned char* items,
unsigned bufferLength,
unsigned char* buffer)
Заменяет isc_database_info()
.
startTransaction
ITransaction* startTransaction(StatusType* status,
unsigned tpbLength,
const unsigned char* tpb)
Частично заменяет isc_start_multiple()
, использует координатор, чтобызапустить более одной распределённой транзакции. Позволяет объединить 2транзакции в одну распределённую.
reconnectTransaction
ITransaction* reconnectTransaction(StatusType* status,
unsigned length,
const unsigned char* id)
Позволяет подключиться к транзакции в состоянии limbo. Параметр Idсодержит номер транзакции в сетевом формате заданной длины.
compileRequest
IRequest* compileRequest(StatusType* status,
unsigned blrLength,
const unsigned char* blr)
Поддержка ISC API.
transactRequest
void transactRequest(StatusType* status,
ITransaction* transaction,
unsigned blrLength,
const unsigned char* blr,
unsigned inMsgLength,
const unsigned char* inMsg,
unsigned outMsgLength,
unsigned char* outMsg)
Поддержка ISC API.
createBlob
IBlob* createBlob(StatusType* status,
ITransaction* transaction,
ISC_QUAD* id,
unsigned bpbLength,
const unsigned char* bpb)
Создает новый blob, сохраняет его идентификатор в id, заменяетisc_create_blob2()
.
openBlob
IBlob* openBlob(StatusType* status,
ITransaction* transaction,
ISC_QUAD* id,
unsigned bpbLength,
const unsigned char* bpb)
Открывает существующий blob, заменяет isc_open_blob2()
.
getSlice
int getSlice(StatusType* status,
ITransaction* transaction,
ISC_QUAD* id,
unsigned sdlLength,
const unsigned char* sdl,
unsigned paramLength,
const unsigned char* param,
int sliceLength,
unsigned char* slice)
Поддержка ISC API.
putSlice
void putSlice(StatusType* status,
ITransaction* transaction,
ISC_QUAD* id,
unsigned sdlLength,
const unsigned char* sdl,
unsigned paramLength,
const unsigned char* param,
int sliceLength,
unsigned char* slice)
Поддержка ISC API.
executeDyn
void executeDyn(StatusType* status,
ITransaction* transaction,
unsigned length,
const unsigned char* dyn)
Поддержка ISC API.
prepare
IStatement* prepare(StatusType* status,
ITransaction* tra,
unsigned stmtLength,
const char* sqlStmt,
unsigned dialect,
unsigned flags)
Заменяет isc_dsql_prepare()
. Дополнительный параметр flags позволяютконтролировать, какая информация будет предварительно загружена издвижка сразу (т.е. в одном сетевом пакете для удаленной операции).
execute
ITransaction* execute(StatusType* status,
ITransaction* transaction,
unsigned stmtLength,
const char* sqlStmt,
unsigned dialect,
IMessageMetadata* inMetadata,
void* inBuffer,
IMessageMetadata* outMetadata,
void* outBuffer)
Выполняет любую инструкцию SQL, за исключением возврата нескольких строкданных. Частичный аналог isc_dsql_execute2()
— вход и выход XSLQDAзаменены на входные и выходные сообщения с соответствующими буферами.
openCursor
IResultSet* openCursor(StatusType* status,
ITransaction* transaction,
unsigned stmtLength,
const char* sqlStmt,
unsigned dialect,
IMessageMetadata* inMetadata,
void* inBuffer,
IMessageMetadata* outMetadata,
const char* cursorName,
unsigned cursorFlags)
Выполняет оператор SQL, потенциально возвращающий несколько строкданных. Возвращает интерфейсIResultSet
, который используется дляизвлечения этих данных. Формат выходных данных определяется параметромoutMetadata
, при задании NULL
используется формат по умолчанию. ПараметрcursorName указывает имя открытого курсора (аналогisc_dsql_set_cursor_name()
). Параметр cursorFlags
необходим, чтобыоткрыть двунаправленный указатель курсора, для этого необходимо указатьзначение IStatement::CURSOR_TYPE_SCROLLABLE
.
queEvents
IEvents* queEvents(StatusType* status,
IEventCallback* callback,
unsigned length,
const unsigned char* events)
Заменяет вызов isc_que_events()
. Вместо функции обратного вызова сvoid*
параметром используется интерфейс обратного вызова.
cancelOperation
void cancelOperation(StatusType* status, int option)
Замена fb_cancel_operation()
.
ping
void ping(StatusType* status)
Проверяет состояния соединения. Если тест не удаётся, то единственнаявозможная операция с подключением — закрыть его.
getIdleTimeout
unsigned getIdleTimeout(StatusType* status)
Возвращает таймаут простоя соединения в секундах.
setIdleTimeout
void setIdleTimeout(StatusType* status, unsigned timeOut)
Устанавливает таймаут простоя соединения в секундах.
getStatementTimeout
unsigned getStatementTimeout(StatusType* status)
Возвращает таймаут выполнения запроса в миллисекундах.
setStatementTimeout
void setStatementTimeout(StatusType* status, unsigned timeOut)
Устанавливает таймаут выполнения запроса в миллисекундах.
createBatch
IBatch* createBatch(StatusType* status, ITransaction* transaction, unsigned stmtLength, const char* sqlStmt, unsigned dialect, IMessageMetadata* inMetadata, unsigned parLength, const unsigned char* par)
Подготавливает sqlStmt
и создает интерфейс IBatch
, готовый принять несколько наборов входных параметровв формате inMetadata
. Если оставить NULL
в inMetadata
, то пакет будет использовать формат по умолчанию для sqlStmt
.В функцию createBatch()
можно передать блок параметров, что позволит настроить поведение пакета.
createReplicator
IReplicator* createBatch(StatusType* status)
Создаёт экземпляр плагина репликации с интерфейсом IReplicator
.
detach
void detach(StatusType* status)
Отсоединяет от текущей базы данных. Заменяет isc_detach_database()
. В случае успеха освобождает интерфейс.
dropDatabase
void dropDatabase(StatusType* status)
Удаляет текущую базу данных. Заменяет isc_drop_database()
. В случае успеха освобождает интерфейс.