IStatement
Interface IStatement
— remplace (partiellement) isc_stmt_handle
.
-
getInfo
void getInfo(StatusType* status, unsigned itemsLength, const unsigned char* items, unsigned bufferLength, unsigned char* buffer)
Remplace
isc_dsql_sql_info()
. -
getType
unsigned getType(StatusType* status)
Le type d’opérateur ne se trouve actuellement que dans les sources Firebird dans
dsql/dsql.h
. -
getPlan
const char* getPlan(StatusType* status, FB_BOOLEAN detailed)
Renvoie le plan d’exécution de l’opérateur.
-
getAffectedRecords
ISC_UINT64 getAffectedRecords(StatusType* status)
Renvoie le nombre d’enregistrements affectés par l’opérateur.
-
getInputMetadata
IMessageMetadata* getInputMetadata(StatusType* status)
Renvoie les métadonnées des paramètres.
-
getOutputMetadata
IMessageMetadata* getOutputMetadata(StatusType* status)
Renvoie les métadonnées des valeurs de sortie.
-
execute
ITransaction* execute(StatusType* status, ITransaction* transaction, IMessageMetadata* inMetadata, void* inBuffer, IMessageMetadata* outMetadata, void* outBuffer)
Exécute toutes les instructions SQL, à l’exception de celles qui renvoient plusieurs lignes de données. Analogique partiel de
isc_dsql_execute2()
— l’entrée et la sortie deXSLQDA
ont été remplacées par des messages d’entrée et de sortie avec les tampons correspondants. -
openCursor
IResultSet* openCursor(StatusType* status, ITransaction* transaction, IMessageMetadata* inMetadata, void* inBuffer, IMessageMetadata* outMetadata, unsigned flags)
Exécute une instruction SQL qui renvoie potentiellement plusieurs lignes de données. Renvoie l’interface
IResultSet
qui doit être utilisée pour récupérer ces données. Le format de la sortie est déterminé par le paramètreoutMetadata
, siNULL
est spécifié, le format par défaut sera utilisé. -
setCursorName
void setCursorName(StatusType* status, const char* name)
Remplace
isc_dsql_set_cursor_name()
. -
free
void free(StatusType* status)
Détruit l’opérateur, libère l’interface en cas de succès.
-
getFlags
unsigned getFlags(StatusType* status)
Renvoie des indicateurs décrivant comment cette instruction doit être exécutée, un remplacement simplifié de la méthode
getType()
. -
getTimeout
unsigned getTimeout(StatusType* status)
Renvoie le délai d’expiration de la requête SQL en millisecondes.
-
setTimeout
unsigned setTimeout(StatusType* status)
Définit le délai d’exécution de la requête SQL en millisecondes.
-
createBatch
IBatch* createBatch(StatusType* status, IMessageMetadata* inMetadata, unsigned parLength, const unsigned char* par)
Crée une interface
IBatch
pour une instruction SQL avec des paramètres d’entrée, ce qui permet à cette instruction d’être exécutée avec plusieurs ensembles de paramètres. Le format des données d’entrée est déterminé par le paramètreinMetadata
, le laissantNULL
, le package utilise le format par défaut de cette interface. Un bloc de paramètres peut être passé à la fonctioncreateBatch()
, qui permet de configurer le comportement du paquet.
Constantes définies par l’interface IStatement
Flag IAttachment::prepare()
:
-
PREPARE_PREFETCH_NONE
— constante pour ignorer les flags, valeur 0.
Les flags suivants peuvent être combinés avec OU
pour produire l’effet souhaité :
-
PREPARE_PREFETCH_TYPE
-
PREPARE_PREFETCH_INPUT_PARAMETERS
-
PREPARE_PREFETCH_OUTPUT_PARAMETERS
-
PREPARE_PREFETCH_LEGACY_PLAN
-
PREPARE_PREFETCH_DETAILED_PLAN
-
PREPARE_PREFETCH_AFFECTED_RECORDS
-
PREPARE_PREFETCH_FLAGS
(flag renvoyés par legetFlags()
)
Pour les combinaisons d’indicateurs les plus couramment utilisées, vous pouvez utiliser les constantes suivantes :
-
PREPARE_PREFETCH_METADATA
-
PREPARE_PREFETCH_ALL
Les valeurs renvoyées par l’attribut getFlags()
:
-
FLAG_HAS_CURSOR
— UtiliseropenCursor()
pour exécuter cette instruction plutôt queexecute()
-
FLAG_REPEAT_EXECUTE
— Lorsqu’une instruction préparée peut être exécutée plusieurs fois avec des paramètres différents.
Les flags passés à openCursor()
:
-
CURSOR_TYPE_SCROLLABLE
— Ouvre un curseur bidirectionnel.