-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy pathdb2-next-result.xml
187 lines (172 loc) · 4.59 KB
/
db2-next-result.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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 871b71764cdca8238069f27436d96011a6a2cb36 Maintainer: takagi Status: ready -->
<refentry xml:id="function.db2-next-result" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>db2_next_result</refname>
<refpurpose>
ストアドプロシージャから、次の結果セットを要求する
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>resource</type><type>false</type></type><methodname>db2_next_result</methodname>
<methodparam><type>resource</type><parameter>stmt</parameter></methodparam>
</methodsynopsis>
<para>
ストアドプロシージャは、複数の結果セットを返すことができます。
単純な SELECT 文が返す結果を処理するのと同じように最初の結果セットを
扱った後でそれ以降の結果セットを処理する際には、
<function>db2_next_result</function> 関数をコールして
その戻り値を PHP 変数に代入しなければなりません。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>stmt</parameter></term>
<listitem>
<para>
<function>db2_exec</function> あるいは
<function>db2_execute</function> から返されるプリペアドステートメント。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
ストアドプロシージャが別の結果セットを返している場合には
次の結果セットを含む新しいステートメントリソース、
別の結果セットを返していない場合には &false; を返します。
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>複数の結果セットを返すストアドプロシージャをコールする</title>
<para>
次の例では、3 つの結果セットを返すストアドプロシージャをコールします。
最初の結果セットは CALL 文を起動したのと同じステートメントリソースから
直接取得できますが、2 番目および 3 番目の結果セットは
<function>db2_next_result</function>
が返すステートメントリソースから取得します。
</para>
<programlisting role="php">
<![CDATA[
<?php
$conn = db2_connect($database, $user, $password);
if ($conn) {
$stmt = db2_exec($conn, 'CALL multiResults()');
print "最初の結果セットを取得します\n";
while ($row = db2_fetch_array($stmt)) {
var_dump($row);
}
print "\n2 番目の結果セットを取得します\n";
$res = db2_next_result($stmt);
if ($res) {
while ($row = db2_fetch_array($res)) {
var_dump($row);
}
}
print "\n3 番目の結果セットを取得します\n";
$res2 = db2_next_result($stmt);
if ($res2) {
while ($row = db2_fetch_array($res2)) {
var_dump($row);
}
}
db2_close($conn);
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
最初の結果セットを取得します
array(2) {
[0]=>
string(16) "Bubbles "
[1]=>
int(3)
}
array(2) {
[0]=>
string(16) "Gizmo "
[1]=>
int(4)
}
2 番目の結果セットを取得します
array(4) {
[0]=>
string(16) "Sweater "
[1]=>
int(6)
[2]=>
string(5) "llama"
[3]=>
string(6) "150.00"
}
array(4) {
[0]=>
string(16) "Smarty "
[1]=>
int(2)
[2]=>
string(5) "horse"
[3]=>
string(6) "350.00"
}
3 番目の結果セットを取得します
array(1) {
[0]=>
string(16) "Bubbles "
}
array(1) {
[0]=>
string(16) "Gizmo "
}
]]>
</screen>
</example>
</para>
</refsect1>
<!-- Use when adding See Also links
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function></function></member>
<member>Or <link linkend="somethingelse">something else</link></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
-->