-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy pathdb2-fetch-row.xml
189 lines (183 loc) · 6.57 KB
/
db2-fetch-row.xml
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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 871b71764cdca8238069f27436d96011a6a2cb36 Maintainer: takagi Status: ready -->
<refentry xml:id="function.db2-fetch-row" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>db2_fetch_row</refname>
<refpurpose>
結果セットポインタを次の行あるいは要求された行に設定する
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>db2_fetch_row</methodname>
<methodparam><type>resource</type><parameter>stmt</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>row_number</parameter><initializer>-1</initializer></methodparam>
</methodsynopsis>
<para>
<function>db2_fetch_row</function> を使用して結果セットを順に処理します。
あるいは、スクロール可能なカーソルを使用している場合は
指定した行を指すようにします。
</para>
<para>
結果セットから個々のフィールドを取得するには
<function>db2_result</function> 関数をコールします。
</para>
<para>
<function>db2_fetch_row</function> および
<function>db2_result</function> をコールするのではなく、
ほとんどのアプリケーションでは
<function>db2_fetch_assoc</function>、<function>db2_fetch_both</function>、
および <function>db2_fetch_array</function> のいずれかをコールするでしょう。
これらは、結果セットのポインタを前に進めたうえで行の内容を配列として取得します。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>stmt</parameter></term>
<listitem>
<para>
有効な <literal>stmt</literal> リソース。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>row_number</parameter></term>
<listitem>
<para>
スクロール可能なカーソルの場合に、結果セットの行番号を指定します。
行番号は 1 から始まります。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
結果セットに指定した行が存在する場合に &true;、存在しない場合に
&false; を返します。
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>結果セットを順に処理する</title>
<para>
次の例では、<function>db2_fetch_row</function>
を使用して結果セットを順に処理し、<function>db2_result</function>
で結果セットからカラムを取得する方法を示します。
</para>
<programlisting role="php">
<![CDATA[
<?php
$sql = 'SELECT name, breed FROM animals WHERE weight < ?';
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, array(10));
while (db2_fetch_row($stmt)) {
$name = db2_result($stmt, 0);
$breed = db2_result($stmt, 1);
print "$name $breed";
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
cat Pook
gold fish Bubbles
budgerigar Gizmo
goat Rickety Ride
]]>
</screen>
</example>
<example>
<title>i5/OS recommended alternatives to db2_fetch_row/db2_result</title>
<para>
i5/OS では、<function>db2_fetch_row</function>/<function>db2_result</function>
ではなく <function>db2_fetch_both</function>、
<function>db2_fetch_array</function> あるいは <function>db2_fetch_object</function>
を使用することを推奨します。一般に
<function>db2_fetch_row</function>/<function>db2_result</function> は、さまざまなカラム型で
<literal>EBCIDIC</literal> から <literal>ASCII</literal> への変換の際に問題が発生します。
<literal>DBCS</literal> アプリケーションではデータが切り捨てられてしまう可能性もあります。
また、パフォーマンス面でも <function>db2_fetch_both</function>、
<function>db2_fetch_array</function> および <function>db2_fetch_object</function>
は <function>db2_fetch_row</function>/<function>db2_result</function>
よりすぐれています。
</para>
<programlisting role="php">
<![CDATA[
<?php
$conn = db2_connect("","","");
$sql = 'SELECT SPECIFIC_SCHEMA, SPECIFIC_NAME, ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE, ROUTINE_CREATED, ROUTINE_BODY, IN_PARMS, OUT_PARMS, INOUT_PARMS, PARAMETER_STYLE, EXTERNAL_NAME, EXTERNAL_LANGUAGE FROM QSYS2.SYSROUTINES FETCH FIRST 2 ROWS ONLY';
$stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
while ($row = db2_fetch_both($stmt)){
echo "<br>db2_fetch_both {$row['SPECIFIC_NAME']} {$row['ROUTINE_CREATED']} {$row[5]}";
}
$stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
while ($row = db2_fetch_array($stmt)){
echo "<br>db2_fetch_array {$row[1]} {$row[5]}";
}
$stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
while ($row = db2_fetch_object($stmt)){
echo "<br>db2_fetch_object {$row->SPECIFIC_NAME} {$row->ROUTINE_CREATED}";
}
db2_close($conn);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
db2_fetch_both MATCH_ANIMAL 2006-08-25-17.10.23.775000 2006-08-25-17.10.23.775000
db2_fetch_both MULTIRESULTS 2006-10-17-10.11.05.308000 2006-10-17-10.11.05.308000
db2_fetch_array MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_array MULTIRESULTS 2006-10-17-10.11.05.308000
db2_fetch_object MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_object MULTIRESULTS 2006-10-17-10.11.05.308000
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>db2_fetch_array</function></member>
<member><function>db2_fetch_assoc</function></member>
<member><function>db2_fetch_both</function></member>
<member><function>db2_fetch_object</function></member>
<member><function>db2_result</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- 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:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->