XXII. 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 utiliser 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 elle 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 OpenSources , et DB+ + dispose d ' interface Perl et Tcl depuis longtemps . Il utilise aussi Tcl pour ses procédures stockées internes .

Pré-requis

Cette extension dépend de librairie 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 version de démo 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 par vous même , vous devez avoir les librairies clients et les fichiers d' entê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 librairies clients et les fichiers d ' entêtes dans les dossiers suivants : / usr / dbplus , / usr / local / dbplus et / opt / dblus . Si vous avez installé Db+ + dans un autre dossier , indiquez le chemin de ce dossier dans l ' option de configure comme ceci : --with-dbplus= / your / installation / path .

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration .

Types de ressources

dbplus_relation

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

Constantes Prédefinies

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 1 . Codes d ' erreurs de DB+ +

Constante PHP Constante DB+ + Description
DBPLUS_ERR_NOERR ( entier ) Condition d ' erreur Null
DBPLUS_ERR_DUPLICATE ( entier ) Tentative d' insertion d 'un doublon
DBPLUS_ERR_EOSCAN ( entier ) Fin de scan de rget( )
DBPLUS_ERR_EMPTY ( entier ) Relation vide ( serveur )
DBPLUS_ERR_CLOSE ( entier ) Le serveur ne peut fermer
DBPLUS_ERR_WLOCKED ( entier ) La ligne est verrouillée en écriture
DBPLUS_ERR_LOCKED ( entier ) La relation est déjà verrouillée
DBPLUS_ERR_NOLOCK ( entier ) La relation ne peut être verrouillée
DBPLUS_ERR_READ ( entier ) Erreur de lecture sur la relation
DBPLUS_ERR_WRITE ( entier ) Erreur d ' écriture sur la relation
DBPLUS_ERR_CREATE ( entier ) La fonction système Create( ) a échoué
DBPLUS_ERR_LSEEK ( entier ) La fonction système Lseek( ) a échoué
DBPLUS_ERR_LENGTH ( entier ) La ligne excède la taille maximale
DBPLUS_ERR_OPEN ( entier ) La fonction système Open( ) a échoué
DBPLUS_ERR_WOPEN ( entier ) La relation est déjà ouverte en lecture
DBPLUS_ERR_MAGIC ( entier ) Le fichier n ' est pas une relation
DBPLUS_ERR_VERSION ( entier ) Le fichier est une très vieille relation
DBPLUS_ERR_PGSIZE ( entier ) La relation utilise une page de taille différente
DBPLUS_ERR_CRC ( entier ) CRC invalide de la superpage
DBPLUS_ERR_PIPE ( entier ) Une relation pipée requiert lseek( )
DBPLUS_ERR_NIDX ( entier ) Trop d ' index secondaires
DBPLUS_ERR_MALLOC ( entier ) L' appel à Malloc( ) a échoué
DBPLUS_ERR_NUSERS ( entier ) Erreur lors de l' utilisation du nombre maximal d 'utilisateur
DBPLUS_ERR_PREEXIT ( entier ) Causée par une utilisation invalide
DBPLUS_ERR_ONTRAP ( entier ) Causée par un signal
DBPLUS_ERR_PREPROC ( entier ) Erreur dans le préprocesseur
DBPLUS_ERR_DBPARSE ( entier ) Erreur dans l ' analyser
DBPLUS_ERR_DBRUNERR ( entier ) Erreur durant l ' exécution
DBPLUS_ERR_DBPREEXIT ( entier ) La condition d' exit a été causée par la procédure prexit( )
DBPLUS_ERR_WAIT ( entier ) Attend un peu ( Simple seulement )
DBPLUS_ERR_CORRUPT_TUPLE ( entier ) Un client a envoyé une ligne corrompue
DBPLUS_ERR_WARNING0 ( entier ) Les routines Simple ont rencontrées une erreur non-fatale , qui a été corrigée .
DBPLUS_ERR_PANIC ( entier ) Le serveur ne devrait pas s ' arrêter , mais après un désastre , envoyer ERR_PANIC à tout ses clients
DBPLUS_ERR_FIFO ( entier ) Imopssible de créer une pile FIFO
DBPLUS_ERR_PERM ( entier ) Permission refusée
DBPLUS_ERR_TCL ( entier )
DBPLUS_ERR_RESTRICTED ( entier ) Seulement deux utilisateurs
DBPLUS_ERR_USER ( entier ) Une erreur est survenu dans l' utilisation de la librairie par l 'application .
DBPLUS_ERR_UNKNOWN ( entier ) 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 -- Get error string for given errorcode or last error
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 -- Lit un identifiant unique pour une relation
dbplus_info -- Encore non implémentée.
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 -- Get previous tuple from 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 exacte d'une relation, sans les indexes
dbplus_resolve -- Résoud les informations d'hôte pour une relation
dbplus_restorepos -- Pas encore implémenté.
dbplus_rkeys -- Spécifie la nouvelle clé primaire d'une relation
dbplus_ropen -- Ouvre un fichier de relation local
dbplus_rquery -- Performe 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 -- Pas encore implémentée
dbplus_setindex -- Pas encore implémentée
dbplus_setindexbynumber -- Pas encore implémentée
dbplus_sql -- Exécute une requête SQL
dbplus_tcl -- Exécute du code TCL coté serveur
dbplus_tremove -- Supprime la ligne courante et retourne la nouvelle ligne courante
dbplus_undo -- Pas encore implémentée
dbplus_undoprepare -- Pas encore implémentée
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