Manuel PHP
Précédent |  | Suivant

# XXIII. 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 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 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é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 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 1. 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

Précédent | Sommaire | Suivant
timezone_transitions_get | Niveau supérieur | dbplus_add