px_create_fp

(PECL paradox >= 1.0.0)

px_create_fpСоздать новую базу данных paradox

Описание

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

Создать новый файл базы данных paradox. Перед вызовом данной функции фактический файл нужно открыть с помощью fopen(). Убедитесь, что этот файл доступен для записи.

Замечание:

Вызов этих функций вызывает предупреждение о пустом имени таблицы, которое можно безопасно игнорировать. Просто установите tablename после этого вызова с помощью px_set_parameter().

Замечание:

Эта функция очень экспериментальна из-за недостаточной документации формата файла paradox. Файлы базы данных, созданные с помощью данной функции, могут быть открыты с помощью px_open_fp(), а также могут быть открыты программным обеспечением Paradox, но ваш сценарий использования может отличаться.

Список параметров

pxdoc

Идентификатор ресурса базы данных paradox, возвращаемый функцией px_new().

file

Дескриптор файла, возвращаемый функцией fopen().

fielddesc

fielddesc - это массив, содержащий один элемент для каждой спецификации поля. Спецификация поля - это массив с двумя или тремя элементами. Первый элемент всегда строковое значение, используемое как имя поля. Он не может быть длиной более десяти символов. Второй элемент содержит тип поля, который является одной из констант, перечисленных в таблице Константы типов полей. В случае поля символа или поля bcd вам нужно будет предоставить третий элемент, определяющий длину, соответственно, точности поля. Если спецификация поля содержит поля blob, вам нужно будет либо сделать поле достаточно большим для всех значений полей, либо указать blob-файл с помощью px_set_blob_file() для хранения blob-файлов. Если это не сделано, данные поля обрезаются.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Создание базы данных Paradox с помощью двух полей

<?php
if(!$pxdoc px_new()) {
  
/* Обработка ошибки */
}
$fp fopen("test.db""w+");
$fields = array(array("col1""S"), array("col2""I"));
if(!
px_create_fp($pxdoc$fp$fields)) {
  
/* Обработка ошибки */
}
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);
?>

Смотрите также

  • px_new() - Создать новый объект paradox
  • px_put_record() - Сохраняет запись в базе данных paradox
  • fopen() - Открывает файл или 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