px_create_fp

(PECL paradox >= 1.0.0)

px_create_fp新しい paradox データベースを作成する

説明

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

新しい paradox データベースファイルを作成します。 実際のファイルは、事前に fopen() でオープンしておく必要があります。 ファイルが書き込み可能であることを確認してください。

注意:

この関数をコールすると「テーブル名が空である」という警告が発生しますが、 これは無視できます。単に、px_set_parameter() を使用して後からテーブル名を設定すればよいのです。

注意:

paradox のファイルフォーマットについての資料が不足しているため、 この関数は、きわめて実験的なものです。 この関数で作成したデータベースファイルは px_open_fp() や Paradox ソフトウェアでオープンできます。 しかしそこから先の道のりは大変でしょう。

パラメータ

pxdoc

px_new() が返す paradox データベースのリソース ID。

file

fopen() が返すファイルハンドル。

fielddesc

fielddesc は、各フィールドの設定を保持する配列です。 それぞれのフィールド設定は、2 つあるいは 3 つの要素を含む配列です。 最初の要素は常に文字列で、フィールドの名前を表します。 10 文字より長くなってはいけません。2 番目の要素にはフィールドの型を指定します。 これは、 フィールド型の定数 の表の中のどれかになります。文字列フィールドや bcd フィールドでは、 3 番目の要素でその要素の精度を指定します。 フィールド定義の中に blob フィールドが含まれている場合は、 確実にすべての値を格納できるだけのフィールドサイズを確保するか、 あるいは blob を保存する際に px_set_blob_file() でファイルを指定しなければなりません。さもないと、 フィールドのデータが切り詰められてしまいます。

返り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

例1 2 つのフィールドを持つ 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