XXIV. Fonctions DB++

AVERTISSEMENT

Ce module est EXPERIMENTAL . Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Introduction

DB++, qui est programmé par une société allemande » Concept asa , est un système de base de données relationnelles à haute performance, faible consommation de mémoire et de disque. Bien qu'il comprenne le langage SQL en tant qu'interface supplémentaire, ce n'est pas vraiment une base de données SQL, car il fournit son propre langage SQL, qui est plus influencé par l'algèbre relationnelle que ne l'est SQL.

Concept asa a toujours supporté les langages Open Source, et DB++ dispose d'interfaces Perl et Tcl depuis longtemps. Il utilise aussi Tcl pour ses procédures stockées internes.

Pré-requis

Cette extension dépend d'une bibliothèque cliente externe : vous devez donc avoir le client DB++ installé sur le système pour pouvoir compiler cette extension dans PHP.

» Concept asa fournit » des versions de démonstration de DB++ et la » documentation pour Linux, ainsi que certaines autres versions UNIX. Il y a aussi une version pour Windows de DB++, mais cette extension ne la supporte pas (pour le moment).

Installation

Pour compiler cette extension vous-même, vous devez avoir les bibliothèques clients et les fichiers d'en-têtes installés sur le système (ils sont inclus dans la distribution de DB++ par défaut). Exécutez la commande configure avec l'option --with-dbplus pour inclure cette extension dans PHP.

configure recherche les bibliothèques clients et les fichiers d'en-têtes dans les dossiers suivants : /usr/dbplus , /usr/local/dbplus et /opt/dbplus . Si vous avez installé DB++ dans un autre dossier, indiquez le chemin de ce dossier dans l'option de configure comme ceci : --with-dbplus=/votre/dossier/installation .

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

dbplus_relation

La plupart des fonctions DB++ travaillent avec une ressource de type dbplus_relation : c'est un pointeur sur une relation, ou une relation, généré par une requête.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Codes d'erreurs de DB++

Tableau 46. Codes d'erreurs de DB++

Constante PHP Constante DB++ Description
DBPLUS_ERR_NOERR (entier ) ERR_NOERR Condition d'erreur Null
DBPLUS_ERR_DUPLICATE (entier ) ERR_DUPLICATE Tentative d'insertion d'un doublon
DBPLUS_ERR_EOSCAN (entier ) ERR_EOSCAN Fin de scan rget()
DBPLUS_ERR_EMPTY (entier ) ERR_EMPTY Relation vide (serveur)
DBPLUS_ERR_CLOSE (entier ) ERR_CLOSE Le serveur ne peut fermer
DBPLUS_ERR_WLOCKED (entier ) ERR_WLOCKED La ligne est verrouillée en écriture
DBPLUS_ERR_LOCKED (entier ) ERR_LOCKED La relation est déjà verrouillée
DBPLUS_ERR_NOLOCK (entier ) ERR_NOLOCK La relation ne peut être verrouillée
DBPLUS_ERR_READ (entier ) ERR_READ Erreur de lecture sur la relation
DBPLUS_ERR_WRITE (entier ) ERR_WRITE Erreur d'écriture sur la relation
DBPLUS_ERR_CREATE (entier ) ERR_CREATE La fonction système Create() a échoué
DBPLUS_ERR_LSEEK (entier ) ERR_LSEEK La fonction système lseek() a échoué
DBPLUS_ERR_LENGTH (entier ) ERR_LENGTH La ligne excède la taille maximale
DBPLUS_ERR_OPEN (entier ) ERR_OPEN La fonction système Open() a échoué
DBPLUS_ERR_WOPEN (entier ) ERR_WOPEN La relation est déjà ouverte en lecture
DBPLUS_ERR_MAGIC (entier ) ERR_MAGIC Le fichier n'est pas une relation
DBPLUS_ERR_VERSION (entier ) ERR_VERSION Le fichier est une très vieille relation
DBPLUS_ERR_PGSIZE (entier ) ERR_PGSIZE La relation utilise une page de taille différente
DBPLUS_ERR_CRC (entier ) ERR_CRC CRC invalide de la superpage
DBPLUS_ERR_PIPE (entier ) ERR_PIPE Une relation pipée requiert lseek()
DBPLUS_ERR_NIDX (entier ) ERR_NIDX Trop d'index secondaires
DBPLUS_ERR_MALLOC (entier ) ERR_MALLOC L'appel à malloc() a échoué
DBPLUS_ERR_NUSERS (entier ) ERR_NUSERS Erreur lors de l'utilisation du nombre maximal d'utilisateurs
DBPLUS_ERR_PREEXIT (entier ) ERR_PREEXIT Causée par une utilisation invalide
DBPLUS_ERR_ONTRAP (entier ) ERR_ONTRAP Causée par un signal
DBPLUS_ERR_PREPROC (entier ) ERR_PREPROC Erreur dans le préprocesseur
DBPLUS_ERR_DBPARSE (entier ) ERR_DBPARSE Erreur dans l'analyseur
DBPLUS_ERR_DBRUNERR (entier ) ERR_DBRUNERR Erreur durant l'exécution
DBPLUS_ERR_DBPREEXIT (entier ) ERR_DBPREEXIT La condition d'exit a été causée par la procédure prexit()
DBPLUS_ERR_WAIT (entier ) ERR_WAIT Attend un peu (Simple seulement)
DBPLUS_ERR_CORRUPT_TUPLE (entier ) ERR_CORRUPT_TUPLE Un client a envoyé une ligne corrompue
DBPLUS_ERR_WARNING0 (entier ) ERR_WARNING0 Les routines Simple ont rencontré une erreur non fatale, qui a été corrigée.
DBPLUS_ERR_PANIC (entier ) ERR_PANIC Le serveur ne devrait pas s'arrêter, mais, après un désastre, envoyer ERR_PANIC à tout ses clients
DBPLUS_ERR_FIFO (entier ) ERR_FIFO Impossible de créer une pile FIFO
DBPLUS_ERR_PERM (entier ) ERR_PERM Permission refusée
DBPLUS_ERR_TCL (entier ) ERR_TCL TCL_error
DBPLUS_ERR_RESTRICTED (entier ) ERR_RESTRICTED Seulement deux utilisateurs
DBPLUS_ERR_USER (entier ) ERR_USER Une erreur est survenue dans l'utilisation de la bibliothèque par l'application.
DBPLUS_ERR_UNKNOWN (entier ) ERR_UNKNOWN Erreur inconnue

Table des matières

dbplus_add — Ajoute une ligne à une relation
dbplus_aql — Exécute une requête AQL
dbplus_chdir — Lit/modifie le chemin courant de base
dbplus_close — Ferme une relation
dbplus_curr — Lit la ligne courante dans une relation
dbplus_errcode — Obtenir un message d'erreur
dbplus_errno — Lit le code d'erreur généré par la dernière opération
dbplus_find — Ajoute une contrainte sur une relation
dbplus_first — Lit la première ligne d'une relation
dbplus_flush — Ecrit toutes les modifications apportées à une relation
dbplus_freealllocks — Libère tous les verrous posés par le client
dbplus_freelock — Lève un verrou en écriture sur une ligne
dbplus_freerlocks — Lève tous les verrous sur les lignes d'une relation
dbplus_getlock — Pose un verrou sur une ligne
dbplus_getunique — Retourne un identifiant unique pour une relation
dbplus_info — Récupère les informations sur une relation
dbplus_last — Lit la dernière ligne d'une relation
dbplus_lockrel — Pose un verrou en écriture sur une relation
dbplus_next — Lit la ligne suivante dans la relation
dbplus_open — Ouvre un fichier de relation
dbplus_prev — Lit la ligne précédente dans la relation
dbplus_rchperm — Modifie les droits sur la relation
dbplus_rcreate — Crée une nouvelle relation DB++
dbplus_rcrtexact — Crée une copie exacte mais vide d'une relation
dbplus_rcrtlike — Crée une copie vide d'une relation avec les index
dbplus_resolve — Résout les informations d'hôte pour une relation
dbplus_restorepos — Restaure la position
dbplus_rkeys — Spécifie la nouvelle clé primaire d'une relation
dbplus_ropen — Ouvre un fichier de relation local
dbplus_rquery — Accomplit une requête AQL locale
dbplus_rrename — Renomme une relation
dbplus_rsecindex — Crée un nouvel index secondaire pour une relation
dbplus_runlink — Détruit une relation
dbplus_rzap — Supprime toutes les lignes d'une relation
dbplus_savepos — Sauvegarde la position
dbplus_setindex — Définie l'index
dbplus_setindexbynumber — Définie l'index par un nombre
dbplus_sql — Exécute une requête SQL
dbplus_tcl — Exécute du code TCL côté serveur
dbplus_tremove — Supprime la ligne courante et retourne la nouvelle ligne courante
dbplus_undo — Annule
dbplus_undoprepare — Prépare l'annulation
dbplus_unlockrel — Libère un verrou en écriture posé sur une relation
dbplus_unselect — Retire une contrainte d'une relation
dbplus_update — Modifie une ligne dans une relation
dbplus_xlockrel — Pose un verrou exclusif sur une relation
dbplus_xunlockrel — Lève un verrou exclusif posé sur une relation