px_create_fp
(PECL paradox:1.0-1.4.1)
px_create_fp — Create a new paradox database
Описание
Create a new paradox database file. The actual file has to be opened before with fopen(). Make sure the file is writable.
Замечание: Calling this functions issues a warning about an empty tablename which can be safely ignored. Just set the tablename afterwards with px_set_parameter().
Замечание: This function is highly experimental, due to insufficient documentation of the paradox file format. Database files created with this function can be opened by px_open_fp() and has been successfully opened by the Paradox software, but your milage may vary.
Список параметров
- pxdoc
-
Resource identifier of the paradox database as returned by px_new().
- file
-
File handle as returned by fopen().
- fielddesc
-
fielddesc is an array containing one element for each field specification. A field specification is an array itself with either two or three elements.The first element is always a string value used as the name of the field. It may not be larger than ten characters. The second element contains the field type which is one of the constants listed in the table Constants for field types. In the case of a character field or bcd field, you will have to provide a third element specifying the length respectively the precesion of the field. If your field specification contains blob fields, you will have to make sure to either make the field large enough for all field values to fit or specify a blob file with px_set_blob_file() for storing the blobs. If this is not done the field data is truncated.
Возвращаемые значения
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Примеры
Пример #1 Creating a Paradox database with two fields
<?php
if(!$pxdoc = px_new()) {
/* Error handling */
}
$fp = fopen("test.db", "w+");
$fields = array(array("col1", "S"), array("col2", "I"));
if(!px_create_fp($pxdoc, $fp, $fields)) {
/* Error handling */
}
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);
?>
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с базами данных
- Расширения для работы с базами данных отдельных производителей
- Paradox File Access
- px_close
- px_create_fp
- px_date2string
- px_delete_record
- px_delete
- px_get_field
- px_get_info
- px_get_parameter
- px_get_record
- px_get_schema
- px_get_value
- px_insert_record
- px_new
- px_numfields
- px_numrecords
- px_open_fp
- px_put_record
- px_retrieve_record
- px_set_blob_file
- px_set_parameter
- px_set_tablename
- px_set_targetencoding
- px_set_value
- px_timestamp2string
- px_update_record
Коментарии
(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!