px_create_fp

(PECL paradox >= 1.0.0)

px_create_fpCrée une nouvelle base de données Paradox

Description

px_create_fp ( resource $pxdoc , resource $file , array $fielddesc ) : bool

Crée un nouveau fichier de base de données Paradox. Le fichier actuel doit avoir été ouvert avec la fonction fopen(). Assurez-vous que ce fichier est accessible en écriture.

Note:

L'appel à cette fonction émet une alerte à propos d'un nom de table vide qui peut être ignorée en toute sécurité. Définissez juste le nom de la table en suivant avec la fonction px_set_parameter().

Note:

Cette fonction est hautement expérimentale, à cause du manque de documentation du format de fichier Paradox. Les fichiers de base de données créés avec cette fonction peuvent être ouvert avec la fonction px_open_fp() et devraient s'ouvrir sans problème avec les logiciels Paradox.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

file

Ressource de fichier telle que retournée par la fonction fopen().

fielddesc

fielddesc est un tableau comprenant un élément pour chaque champ contenant ses spécifications. Une spécification de champ est un tableau avec deux ou trois éléments. Le premier élément est toujours une chaîne de caractères représentant le nom du champ. Il ne peut être plus grand que dix caractères. Le deuxième élément contient le type du champ qui peut être une des constantes listées dans la table "Constantes pour les types de champ". Dans le cas d'un champ sous la forme de caractères ou de bcd, vous devez fournir un troisième élément spécifiant la longueur du champ. Si votre spécification de champ contient des champs Blob, vous devez vous assurer de rendre le champ assez grand pour toutes les valeurs des champs ou bien spécifier un fichier Blob avec la fonction px_blob_file() pour y stocker les Blobs. Si vous ne faîtes pas cela, les données du champ seront tronquées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Création d'une base de données Paradox avec deux champs

<?php
if(!$pxdoc px_new()) {
  
/* Gestion d'erreurs */
}
$fp fopen("test.db""w+");
$fields = array(array("col1""S"), array("col2""I"));
if(!
px_create_fp($pxdoc$fp$fields)) {
  
/* Gestion d'erreurs */
}
px_set_parameter($pxdoc"tablename""testtable");
for(
$i=-50$i<50$i++) {
  
$rec = array($i, -$i);
  
px_put_record($pxdoc$rec);
}
px_close($pxdoc);
px_delete($pxdoc);
fclose($fp);
?>

Voir aussi

  • px_new() - Crée un nouvel objet Paradox
  • px_put_record() - Stocke un enregistrement dans une base de données Paradox
  • fopen() - Ouvre un fichier ou une URL

add a note add a note

User Contributed Notes 1 note

up
0
Natanael Simes
8 years ago
(Using php 5.5)

Values of constant field type appears to be inconsistent. Dumping values will show you integer values, including information retrived by px_get_field for type. Field specification in px_create_fp demands to be a char value, because number will be resolved as unknown types. Here is a list with value for each field type that actually works:

ALPHANUMERIC = A
DATE = D
SHORT INTEGER = D
LONG INTEGER = I
CURRENCY = $
NUMBER = N
DOUBLE = N
LOGICAL = L
BOOLEAN = L
MEMOBLOB = M
BLOG = B
FMTMEMOBLOB = F
OLE = O
GRAPHIC = G
TIME = T
TIMESTAMP = @
AUTOINC = +
BCD = #
BYTES = Y

<?php
$fields
= array();
$id = array('id', '+'); // Field name = id, type = autoinc
$name = array('name', 'A', 80); // Field name = name, type = alpha, length = 80
array_push($fields, $id);
array_push($fields, $name);
if(!
$pxdoc = px_new()) {
 
/* Error handling */
}
$fp = fopen("test.db", "w+");
if(!
px_create_fp($pxdoc, $fp, $fields)) {
 
/* Error handling */
}
px_close($pxdoc);
px_delete($pxdoc);
fclose($fp);
?>

And that should do the job!
To Top