CXVII. Accès aux fichiers Paradox

Introduction

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.

Ce module vous permet de lire des bases de données Paradox ainsi que des fichiers d'index primaires et des fichiers Blob. Il peut également créer des bases de données Paradox mais dû au manque de documentation surle format des fichiers Paradox, il se peut que les bases créées ne soient pas lisibles avec toutes les autres applications. Les bases de données cryptées peuvent être lues sans pour autant spécifier de mot de passe si pxlib >= 0.5.0 est utilisé.

Note: Ce module est toujours en cours de développement et peut changer, même si l'API ne sera surement pas modifié en profondeur.

Pré-requis

Vous devez avoir au minimum PHP 5.0.0 et libpx >= 0.4.4 pour la plupart des fonctions. Quelques nouvelles fonctions ne sont disponibles que si pxlib >= 0.6.0 est utilisé. L'écriture et la lecture des bases de données cryptées nécessitent pxlib >= 0.5.0. La bibliothèque Paradox (libpx) est disponible sur » http://pxlib.sourceforge.net.

Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » http://pecl.php.net/package/paradox

Assurez-vous d'avoir installé pxlib avant. Si vous avez installé pxlib via rpm ou via un paquet Débian, n'oubliez pas d'installer également le paquet de développement.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

API orientée objet

L'extension Paradox fournit également une API orientée objet. Elle consiste en une seule classe nommée paradox_db. Ses méthodes diffèrent uniquement des fonctions en leurs noms et, bien sûr, le premier paramètre manquant. La table suivante liste toutes les méthodes avec les fonctions équivalentes.

Tableau 236. Méthodes pour class paradox_db

Nom de la méthodeFonction équivalente
Constructorpx_new()
Destructorpx_delete()
open_fp()px_open_fp()
create_fp()px_create_fp()
close()px_close()
numrecords()px_numrecords()
numfields()px_numfields()
get_record()px_get_record()
put_record()px_put_record()
retrieve_record()px_retrieve_record()
delete_record()px_delete_record()
insert_record()px_insert_record()
update_record()px_update_record()
get_field()px_get_field()
get_schema()px_get_schema()
get_info()px_get_info()
set_parameter()px_set_parameter()
get_parameter()px_get_parameter()
set_value()px_set_value()
get_value()px_get_value()
get_info()px_get_info()
set_targetencoding()px_set_targetencoding()
set_tablename()px_set_tablename()
set_blob_file()px_set_blob_file()
date2string()px_date2string()
timestamp2string()px_timestamp2string()

Types de ressources

px_new() crée un nouvel objet Paradox, nécessaire à toutes les fonctions Paradox.

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.

Les deux tables suivantes listent toutes les constantes définies par l'extension Paradox.

Tableau 237. Contantes pour les types de champs

NomSignification
PX_FIELD_ALPHADonnées sous forme de caractères avec une longueur fixe
PX_FIELD_DATEDate, nombre de jours depuis le 1.1.0000
PX_FIELD_SHORTEntier court (2 octets)
PX_FIELD_LONGEntier long (4 octets)
PX_FIELD_CURRENCYIdentique à PX_FIELD_NUMBER
PX_FIELD_NUMBERDouble
PX_FIELD_LOGICALBooléen
PX_FIELD_MEMOBLOBObjet binaire large
PX_FIELD_BLOBObjet binaire large (non supporté)
PX_FIELD_FMTMEMOBLOBObjet binaire large
PX_FIELD_OLEObjet OLE (basiquement un blob, non supporté)
PX_FIELD_GRAPHICGraphique (basiquement un blob, non supporté)
PX_FIELD_TIMEheure, nombre de millisecondes depuis le 1.1.0000
PX_FIELD_TIMESTAMPtimestamp, nombre de millisecondes depuis le 1.1.0000
PX_FIELD_AUTOINCEntier auto-incrémenté (comme PX_FIELD_LONG)
PX_FIELD_BCDNombre décimal stocké en format bcd (non supporté)
PX_FIELD_BYTESTableau d'octets d'une longueur maximale de 255 octets (non supporté)
PX_KEYTOLOWERConvertit tous les noms de champs en minuscule
PX_KEYTOUPPERConvertit tous les noms de champs en majuscule

Tableau 238. Contantes pour les types de fichiers

NomSignification
PX_FILE_INDEX_DBBase de données indexée
PX_FILE_PRIM_INDEXIndex primaire
PX_FILE_NON_INDEX_DBBase de données non indexée
PX_FILE_NON_INC_SEC_INDEXNon-indexé incrémentalement secondaire
PX_FILE_SEC_INDEXIndex secondaire
PX_FILE_INC_SEC_INDEXIndex secondaire incrémental
PX_FILE_NON_INC_SEC_INDEX_GIndex secondaire non-incrémental
PX_FILE_SEC_INDEX_GIndex secondaire
PX_FILE_INC_SEC_INDEX_GIndex secondaire non-incrémental

Table des matières

px_close — Ferme une base de données Paradox
px_create_fp — Crée une nouvelle base de données Paradox
px_date2string — Convertit une date en une chaîne de caractères
px_delete_record — Efface une enregistrement depuis une base de données Paradox
px_delete — Efface la ressource d'une base de données Paradox
px_get_field — Retourne les spécifications d'un champ
px_get_info — Retourne des informations sur un fichier Paradox
px_get_parameter — Récupère un paramètre
px_get_record — Retourne un enregistrement d'une base de données Paradox
px_get_schema — Retourne le schéma de la base de données
px_get_value — Récupère une valeur
px_insert_record — Insère un enregistrement dans une base de données Paradox
px_new — Crée un nouvel objet Paradox
px_numfields — Retourne le nombre de champs d'une base de données Paradox
px_numrecords — Retourne le nombre d'enregistrements d'une base de données Paradox
px_open_fp — Ouvre une base de données Paradox
px_put_record — Stock un enregistrement dans une base de données Paradox
px_retrieve_record — Retourne un enregistrement depuis une base de données Paradox
px_set_blob_file — Définit le fichier depuis lequel les blobs seront lus
px_set_parameter — Définit un paramètre
px_set_tablename — Définit le nom de la table (déprécié)
px_set_targetencoding — Définit l'encodage pour les caractères des champs (déprécié)
px_set_value — Définit une valeur
px_timestamp2string — Convertit un timestamp en une chaîne de caractères
px_update_record — Met à jour les enregistrements dans une base de données Paradox