FirebirdSQL logo

IAttachment

L’interface IAttachment remplace isc_db_handle.

  1. getInfo

    void getInfo(StatusType* status,
                 unsigned itemsLength,
                 const unsigned char* items,
                 unsigned bufferLength,
                 unsigned char* buffer)

    Remplace isc_database_info().

  2. 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.

  3. 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.

  4. compileRequest

    IRequest* compileRequest(StatusType* status,
                             unsigned blrLength,
                             const unsigned char* blr)

    prise en charge de l’API ISC.

  5. 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.

  6. 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().

  7. 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().

  8. 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.

  9. 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.

  10. executeDyn

    void executeDyn(StatusType* status,
                    ITransaction* transaction,
                    unsigned length,
                    const unsigned char* dyn)

    prise en charge de l’API ISC.

  11. 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).

  12. 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.

  13. 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.

  14. 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.

  15. cancelOperation

    void cancelOperation(StatusType* status, int option)

    Remplace fb_cancel_operation().

  16. 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.

  17. getIdleTimeout

    unsigned getIdleTimeout(StatusType* status)

    Renvoie le délai d’inactivité de la connexion en secondes.

  18. setIdleTimeout

    void setIdleTimeout(StatusType* status, unsigned timeOut)

    Définit le délai d’inactivité de la connexion en secondes.

  19. getStatementTimeout

    unsigned getStatementTimeout(StatusType* status)

    Renvoie le délai d’exécution de la requête en millisecondes.

  20. setStatementTimeout

    void setStatementTimeout(StatusType* status, unsigned timeOut)

    Définit le délai d’exécution de la requête en millisecondes.

  21. 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.

  22. createReplicator

    IReplicator* createBatch(StatusType* status)

    Crée une instance du plugin de réplication avec l’interface IReplicator.

  23. 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.

  24. 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.

IDtc

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.

  1. 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.

  2. startBuilder

    IDtcStart* startBuilder(StatusType* status)

    Renvoie l’interface IDtcStart.