File: dbase.xml

package info (click to toggle)
phpdoc 20020310-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 35,272 kB
  • ctags: 354
  • sloc: xml: 799,767; php: 1,395; cpp: 500; makefile: 200; sh: 140; awk: 51
file content (405 lines) | stat: -rw-r--r-- 14,424 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 1.9 $ -->
 <reference id="ref.dbase">
  <title>dBase 関数</title>
  <titleabbrev>dBase</titleabbrev>

  <partintro>
   <simpara>
    これらの関数は、dBase 形式(dbf)のデータベースに保存されたレコード
    にアクセスすることを可能にします。
   </simpara>
   <simpara>
    これらの関数では、インデックスおよびメモフィールドのサポートは行わ
    れません。ロックのサポートも行われません。二つの Web サーバープロ
    セスが同時に同じ dBase ファイルを修正しようとした場合、データベー
    スはほぼ確実に駄目になってしまうでしょう。
   </simpara>
   <simpara>
    dBaseファイルは、固定長の単純なシーケンシャルファイルです。レコー
    ドは、ファイルの終りに追加され、削除されたレコードは
    <function>dbase_pack</function>がコールされるまで保持されます。
   </simpara>
    <simpara>
    商用データベースとして dBase ファイルを使用するべきではありません。
    本物の SQL サーバーを替わりに選んで下さい。通常、MySQL または
    Postgresが PHP で使用されています。dBase ファイルフォーマットは
    Windows の表計算ソフトや統合ソフトで通常サポートされているので、
    dBase サポートにより Web データベースとのデータのインポート/エクス
    ポートが可能となります。
   </simpara>
  </partintro>

  <refentry id="function.dbase-create">
   <refnamediv>
    <refname>dbase_create</refname>
    <refpurpose>dBase データベースを作成する</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>int</type><methodname>dbase_create</methodname>
      <methodparam><type>string</type><parameter>filename</parameter></methodparam>
      <methodparam><type>array</type><parameter>fields</parameter></methodparam>
     </methodsynopsis>
    <para>
     <parameter>fields</parameter> パラメータは、配列の配列です。各配
     列は、データベースにおける一つのフィールドのフォーマットを記述し
     ます。各フィールドは、名前、フィールド型、長さ、精度を示す文字か
     ら構成されます。
    </para>
    <para>
     利用可能なフィールド型は次のようになります。
     <variablelist>
      <varlistentry>
       <term>L</term>
       <listitem>
	<simpara>
	 論理値。長さも精度もありません。
	</simpara>
       </listitem>
      </varlistentry>
      <varlistentry>
       <term>M</term>
       <listitem>
	<simpara>
	 メモ。(PHP ではサポートされないことに注意して下さい。)
	 長さも精度もありません。
	</simpara>
       </listitem>
      </varlistentry>
      <varlistentry>
       <term>D</term>
       <listitem>
	<simpara>
	 日付(Date) (YYYYMMDD という形式で保持されます)。
	 長さも精度もありません。
	</simpara>
       </listitem>
      </varlistentry>
      <varlistentry>
       <term>N</term>
       <listitem>
	<simpara>
	 番号(Number)。長さおよび精度(小数点以下の桁数)を有します。
	</simpara>
       </listitem>
      </varlistentry>
      <varlistentry>
       <term>C</term>
       <listitem>
	<simpara>
	 文字列。
	</simpara>
       </listitem>
      </varlistentry>
     </variablelist></para>
    <para>
     データベースの作成に成功した場合、dbase ID が返されます。失敗した
     場合は、&false; が返されます。
     <example>
      <title>dBaseデータベースファイルを作成する</title>
      <programlisting role="php">
<![CDATA[
// データベース名
$dbname = "/tmp/test.dbf";
 
// データベースの定義
$def =
    array(
        array("date",     "D"),
        array("name",     "C",  50),
        array("age",      "N",   3, 0),
        array("email",    "C", 128),
        array("ismember", "L")
    );
 
// 作成
if (!dbase_create($dbname, $def))
    print "<strong>Error!</strong>";
]]>
      </programlisting>
     </example>
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.dbase-open">
   <refnamediv>
    <refname>dbase_open</refname>
    <refpurpose>dBase データベースをオープンする</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>int</type><methodname>dbase_open</methodname>
      <methodparam><type>string</type><parameter>filename</parameter></methodparam>
      <methodparam><type>int</type><parameter>flags</parameter></methodparam>
     </methodsynopsis>
    <para>
     フラグは、open() システムコールにおけるフラグに対応します。
     (通常、0 は読込のみ可、1 は書込のみ可、2 は読み書きを意味します)
    </para>
    <para>
     オープンされたデータベースの dbase ID を返します。
     データベースをオープンできなかった場合は、&false; を返します。
    </para>
    &note.sm.uidcheck;
   </refsect1>
  </refentry>

  <refentry id="function.dbase-close">
   <refnamediv>
    <refname>dbase_close</refname>
    <refpurpose>dBase データベースを閉じる</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>bool</type><methodname>dbase_close</methodname>
      <methodparam><type>int</type><parameter>dbase_identifier</parameter></methodparam>
     </methodsynopsis>
    <para>
     <parameter>dbase_identifier</parameter>が指すデータベースを閉じま
     す。
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.dbase-pack">
   <refnamediv>
    <refname>dbase_pack</refname>
    <refpurpose>dBase データベースをパックする</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>bool</type><methodname>dbase_pack</methodname>
      <methodparam><type>int</type><parameter>dbase_identifier</parameter></methodparam>
     </methodsynopsis>
    <para>
     指定されたデータベースをパックします。
     (<function>dbase_delete_record</function> を用いて削除指定を行っ
     た全てのレコードの削除を実際に行います。)
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.dbase-add-record">
   <refnamediv>
    <refname>dbase_add_record</refname>
    <refpurpose>dBase データベースにレコードを追加する</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>bool</type><methodname>dbase_add_record</methodname>
      <methodparam><type>int</type><parameter>dbase_identifier</parameter></methodparam>
      <methodparam><type>array</type><parameter>record</parameter></methodparam>
     </methodsynopsis>
    <para>
     <parameter>record</parameter> のデータをデータベースに追加します。
     指定したレコード中の項目数が、データベース中のフィールド数と等し
     くない場合、処理は失敗し、&false; が返されます。
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.dbase-replace-record">
   <refnamediv>
    <refname>dbase_replace_record</refname>
    <refpurpose>dBase データベースのレコードを置換する</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>bool</type><methodname>dbase_replace_record</methodname>
      <methodparam><type>int</type><parameter>dbase_identifier</parameter></methodparam>
      <methodparam><type>array</type><parameter>record</parameter></methodparam>
      <methodparam><type>int</type><parameter>dbase_record_number</parameter></methodparam>
     </methodsynopsis>
    <simpara>
     データベースのレコード<parameter>record_number</parameter>が指す
     データを<parameter>record</parameter>のデータで置換します。指定し
     たレコードの項目数がデータベースのフィールド数に等しくない場合、
     操作は失敗し、&false;が返されます。
    </simpara>
    <simpara>
     <parameter>dbase_record_number</parameter> は1からデータベースの
     レコード数までの範囲の整数となります。
     (<function>dbase_numrecords</function>により返されます)
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.dbase-delete-record">
   <refnamediv>
    <refname>dbase_delete_record</refname>
    <refpurpose>dBase データベースからレコードを削除する</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>bool</type><methodname>dbase_delete_record</methodname>
      <methodparam><type>int</type><parameter>dbase_identifier</parameter></methodparam>
      <methodparam><type>int</type><parameter>record</parameter></methodparam>
     </methodsynopsis>
    <para>
     データベースから削除したいレコード <parameter>record</parameter>
     をマークします。実際に削除を行うには、
     <function>dbase_pack</function> をコールする必要があります。
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.dbase-get-record">
   <refnamediv>
    <refname>dbase_get_record</refname>
    <refpurpose>dBase データベースからレコードを得る</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>array</type><methodname>dbase_get_record</methodname>
      <methodparam><type>int</type><parameter>dbase_identifier</parameter></methodparam>
      <methodparam><type>int</type><parameter>record</parameter></methodparam>
     </methodsynopsis>
    <para>
     <parameter>record</parameter> からのデータが配列に返されます。配
     列の添字は 0から始まり、連想配列のメンバー 'deleted' を含んでいま
     す。これには、そのレコードに削除指定が行われている場合に 1 がセッ
     トされます。(<function>dbase_delete_record</function> も参照下さ
     い。)
    </para>
    <para>
     各フィールドは、適当な PHP 型に変換されます。
     <itemizedlist>
      <listitem>
       <simpara>
        日付は、文字列のままとなります。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        整数は、オーバーフロー(>32ビット)を起こす可能性がある整数が文
        字列として返します。
       </simpara>
      </listitem>
     </itemizedlist>
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.dbase-get-record-with-names">
   <refnamediv>
    <refname>dbase_get_record_with_names</refname>
    <refpurpose>
     dBaseデータベースからレコードを連想配列として得る
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>array</type><methodname>dbase_get_record_with_names</methodname>
      <methodparam><type>int</type><parameter>dbase_identifier</parameter></methodparam>
      <methodparam><type>int</type><parameter>record</parameter></methodparam>
     </methodsynopsis>
    <para>
     <parameter>record</parameter> からデータを連想配列として返します。
     配列は、レコードに削除のマークが付けられている場合は、連想配列に
     メンバー'deleted'が付加され、その値は1となります。
     (<function>dbase_delete_record</function>を参照下さい。)
    </para>
    <para>
     各フィールドは以下の例外を除き表示適当なPHP型に変換されます。
     <itemizedlist>
      <listitem>
       <simpara>
        日付は文字列のままとなります。
       </simpara>
      </listitem>
      <listitem>
       <simpara>
        オーバーフローを発生するような整数(>32ビット)は、文字列として
        返されます。
       </simpara>
      </listitem>
     </itemizedlist>
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.dbase-numfields">
   <refnamediv>
    <refname>dbase_numfields</refname>
    <refpurpose>
     dBase データベースにおけるフィールド数を返す
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>int</type><methodname>dbase_numfields</methodname>
      <methodparam><type>int</type><parameter>dbase_identifier</parameter></methodparam>
     </methodsynopsis>
    <para>
     指定したデータベースにおけるフィールド(カラム)数を返します。フィー
     ルド番号は 0 から dbase_numfields($db)-1 まで、レコード番号は 1
     から dbase_numrecords($db) までです。
     <example>
      <title><function>dbase_numfields</function> の使用法</title>
      <programlisting>
<![CDATA[
$rec = dbase_get_record($db, $recno);
$nf  = dbase_numfields($db);
for ($i=0; $i < $nf; $i++) {
    print $rec[$i]."<br>\n";
}
]]>
      </programlisting>
     </example>
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.dbase-numrecords">
   <refnamediv>
    <refname>dbase_numrecords</refname>
    <refpurpose>
     dBase データベースにおけるレコード数を返す
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>int</type><methodname>dbase_numrecords</methodname>
      <methodparam><type>int</type><parameter>dbase_identifier</parameter></methodparam>
     </methodsynopsis>
    <para>
     指定したデータベースにレコード(行)数を返します。レコード番号は 1
     から dbase_numrecords($db) まで、フィールド番号は 0 から
     dbase_numfields($db)-1 までです。
    </para>
   </refsect1>
  </refentry>

 </reference>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->