Création d’une base de données et connexion à une base de données existante
Exécution d’une instruction SQL sans paramètres d’entrée et avec des lignes renvoyées
Exécution d’instructions SQL avec des paramètres d’entrée
Ouvrir un curseur et en extraire les données
Utilisation de la macros FB_MESSAGE pour les messages statiques
L’interface IAttachment
remplace isc_db_handle
.
getInfo
void getInfo(StatusType* status,
unsigned itemsLength,
const unsigned char* items,
unsigned bufferLength,
unsigned char* buffer)
Remplace isc_database_info()
.
startTransaction
ITransaction* startTransaction(StatusType* status,
unsigned tpbLength,
const unsigned char* tpb)
Remplace partiellement isc_start_multiple()
, utilise le coordinateur pour exécuter plus d’une transaction distribuée. Permet de combiner 2 transactions en une seule transaction distribuée.
reconnectTransaction
ITransaction* reconnectTransaction(StatusType* status,
unsigned length,
const unsigned char* id)
Permet de se connecter à une transaction en cours de traitement. Le paramètre Id contient le numéro de transaction dans le format de réseau de la longueur spécifiée.
compileRequest
IRequest* compileRequest(StatusType* status,
unsigned blrLength,
const unsigned char* blr)
prise en charge de l’API ISC.
transactRequest
void transactRequest(StatusType* status,
ITransaction* transaction,
unsigned blrLength,
const unsigned char* blr,
unsigned inMsgLength,
const unsigned char* inMsg,
unsigned outMsgLength,
unsigned char* outMsg)
prise en charge de l’API ISC.
createBlob
IBlob* createBlob(StatusType* status,
ITransaction* transaction,
ISC_QUAD* id,
unsigned bpbLength,
const unsigned char* bpb)
Crée un nouvel objet blob, stocke son identificateur dans id, remplace isc_create_blob2()
.
openBlob
IBlob* openBlob(StatusType* status,
ITransaction* transaction,
ISC_QUAD* id,
unsigned bpbLength,
const unsigned char* bpb)
Ouvre un objet blob existant, remplace 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)
prise en charge de l’API ISC.
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)
prise en charge de l’API ISC.
executeDyn
void executeDyn(StatusType* status,
ITransaction* transaction,
unsigned length,
const unsigned char* dyn)
prise en charge de l’API ISC.
prepare
IStatement* prepare(StatusType* status,
ITransaction* tra,
unsigned stmtLength,
const char* sqlStmt,
unsigned dialect,
unsigned flags)
Remplace isc_dsql_prepare()
. Un paramètre d’indicateurs supplémentaire vous permet de contrôler quelles informations seront préchargées à partir du moteur en une seule fois (c’est-à-dire dans un seul paquet réseau pour une opération à distance).
execute
ITransaction* execute(StatusType* status,
ITransaction* transaction,
unsigned stmtLength,
const char* sqlStmt,
unsigned dialect,
IMessageMetadata* inMetadata,
void* inBuffer,
IMessageMetadata* outMetadata,
void* outBuffer)
Exécute n’importe quelle instruction SQL, à l’exception du renvoi de plusieurs lignes de données. Analogie partiel de isc_dsql_execute2()
— Les entrées et sorties XSLQDA ont été remplacées par des messages d’entrée et de sortie avec les tampons correspondants.
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)
Exécute une instruction SQL qui renvoie potentiellement plusieurs lignes de données. Renvoie l’interface IResultSet
, qui est utilisé pour récupérer ces données. Le format de la sortie est déterminé par le paramètre outMetadata
, si NULL
est défini, le format par défaut sera utilisé. Le paramètre cursorName
spécifie le nom du curseur ouvert (analogue à isc_dsql_set_cursor_name()
). Le paramètre cursorFlags
est nécessaire pour ouvrir le pointeur de curseur bidirectionnel en spécifiant la valeur IStatement::CURSOR_TYPE_SCROLLABLE
.
queEvents
IEvents* queEvents(StatusType* status,
IEventCallback* callback,
unsigned length,
const unsigned char* events)
Remplace l’appel isc_que_events()
. Au lieu d’une fonction avec un paramètre void*
, une interface est utilisée.
cancelOperation
void cancelOperation(StatusType* status, int option)
Remplace fb_cancel_operation()
.
ping
void ping(StatusType* status)
Vérifie l’état de la connexion. Si le test échoue, la seule opération de connexion possible est de la fermer.
getIdleTimeout
unsigned getIdleTimeout(StatusType* status)
Renvoie le délai d’inactivité de la connexion en secondes.
setIdleTimeout
void setIdleTimeout(StatusType* status, unsigned timeOut)
Définit le délai d’inactivité de la connexion en secondes.
getStatementTimeout
unsigned getStatementTimeout(StatusType* status)
Renvoie le délai d’exécution de la requête en millisecondes.
setStatementTimeout
void setStatementTimeout(StatusType* status, unsigned timeOut)
Définit le délai d’exécution de la requête en millisecondes.
createBatch
IBatch* createBatch(StatusType* status,
ITransaction* transaction,
unsigned stmtLength,
const char* sqlStmt,
unsigned dialect,
IMessageMetadata* inMetadata,
unsigned parLength,
const unsigned char* par)
Prépare sqlStmt
et crée une interface IBatch
prête à accepter plusieurs ensembles de paramètres d’entrée au format inMetadata
. Si vous laissez NULL
dans inMetadata
, le package utilisera le format par défaut pour sqlStmt
.Un bloc de paramètres peut être passé à la fonction createBatch()
, qui permet de configurer le comportement du paquet.
createReplicator
IReplicator* createBatch(StatusType* status)
Crée une instance du plugin de réplication avec l’interface IReplicator
.
detach
void detach(StatusType* status)
Se détache de la base de données courante. Remplace isc_detach_database()
. En cas de succès, l’interface est libérée.
dropDatabase
void dropDatabase(StatusType* status)
Supprime la base de données courante. Remplace isc_drop_database()
. En cas de succès, l’interface est libérée.
Interface IDtc
— Coordonnatrice des transactions distribuées Permet de démarrer une transaction distribuée (fonctionne avec deux connexions ou plus). Contrairement à l’approche pré-FB3, où une transaction distribuée doit être démarrée de cette manière dès le début, le Firebird 3 Distributed Transaction Coordinator vous permet également de joindre des transactions déjà en cours en une seule transaction distribuée.
join
ITransaction* join(StatusType* status, ITransaction* one, ITransaction* two)
Combine 2 transactions indépendantes en une transaction distribuée. En cas de succès, les deux transactions passées à join()
sont libérées et les pointeurs vers elles ne doivent plus être utilisés.
startBuilder
IDtcStart* startBuilder(StatusType* status)
Renvoie l’interface IDtcStart
.
Interface IDtcStart
— remplace le tableau des structures TEB (passé isc_start_multiple()
à l’API ISC). Cette interface rassemble les connexions (et les TPB correspondants) pour lesquelles la transaction distribuée doit être démarrée.
addAttachment
void addAttachment(StatusType* status, IAttachment* att)
Ajoute une connexion, la transaction pour celle-ci sera déclenchée avec TPB par défaut.
addWithTpb
void addWithTpb(StatusType* status, IAttachment* att, unsigned length, const unsigned char* tpb)
Ajoute la connexion et le TPB qui seront utilisés pour déclencher la transaction pour cette connexion.
start
ITransaction* start(StatusType* status)
Démarre une transaction distribuée pour les connexions collectées. En cas de succès, il renvoie l’interface IDtcStart
.