-
Notifications
You must be signed in to change notification settings - Fork 58
/
Copy pathdba-open.xml
231 lines (230 loc) · 8.23 KB
/
dba-open.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
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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 8b5940cadeb4f1c8492f4a7f70743a2be807cf39 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.dba-open" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>dba_open</refname>
<refpurpose>Abrir una base de datos</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>resource</type><methodname>dba_open</methodname>
<methodparam><type>string</type><parameter>path</parameter></methodparam>
<methodparam><type>string</type><parameter>mode</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>handler</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter>...</parameter></methodparam>
</methodsynopsis>
<para>
<function>dba_open</function> establece una instancia de una base de datos para
<parameter>path</parameter> con <parameter>mode</parameter> usando
<parameter>handler</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>path</parameter></term>
<listitem>
<para>
Comúnmente una ruta normal de su sistema de ficheros.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>mode</parameter></term>
<listitem>
<para>
Es <literal>r</literal> para acceso de lectura, <literal>w</literal> para
acceso de lectura/escritura de una base de datos existente, <literal>c</literal>
para acceso de lectura/escritura y creación de una base de datos si no existe actualmente,
y <literal>n</literal> para crear, truncar y acceso de lectura/escritura.
La base de datos se crea en el modo BTree, los demás modos (como Hash o Queue)
no están soportados.
</para>
<para>
Además se puede establecer el método de bloqueo de la base de datos con el siguiente carácter.
Use <literal>l</literal> para bloquear la base de datos con un fichero <filename>.lck</filename>
o <literal>d</literal> para bloquear el fichero de la base de datos mismo. Es
importante que todas sus aplicaciones hagan esto de manera consistente.
</para>
<para>
Si quiere probar el acceso y no quiere esperar para el bloqueo
puede añadir <literal>t</literal> como tercer carácter. Cuando está absolutamente
seguro de que no se requiere el bloqueo de la base de datos, puede usar
<literal>-</literal> en lugar de <literal>l</literal> o
<literal>d</literal>. Cuando no se usar <literal>d</literal>,
<literal>l</literal> o <literal>-</literal>, dba bloqueará
el archivo de la base de datos como si lo estuviera con <literal>d</literal>.
</para>
<note>
<para>
Sólo puede haber un escritor para el archivo de la base de datos. Cuando se usa dba
en un servidor web y más de una solicitud requiere operaciones de escritura, sólo pueden
hacerlo una tras otra. Tampoco está permitido la lectura durante la escritura.
La extensión dba usa bloqueos para impedirlo. Véase la siguiente tabla:
<table>
<title>Bloqueo de DBA</title>
<tgroup cols="9">
<thead>
<row>
<entry>ya abierta</entry>
<entry><parameter>mode</parameter> = "rl"</entry>
<entry><parameter>mode</parameter> = "rlt"</entry>
<entry><parameter>mode</parameter> = "wl"</entry>
<entry><parameter>mode</parameter> = "wlt"</entry>
<entry><parameter>mode</parameter> = "rd"</entry>
<entry><parameter>mode</parameter> = "rdt"</entry>
<entry><parameter>mode</parameter> = "wd"</entry>
<entry><parameter>mode</parameter> = "wdt"</entry>
</row>
</thead>
<tbody>
<row>
<entry>sin abrir</entry>
<entry>ok</entry>
<entry>ok</entry>
<entry>ok</entry>
<entry>ok</entry>
<entry>ok</entry>
<entry>ok</entry>
<entry>ok</entry>
<entry>ok</entry>
</row>
<row>
<entry><parameter>mode</parameter> = "rl"</entry>
<entry>ok</entry>
<entry>ok</entry>
<entry>wait</entry>
<entry>false</entry>
<entry>illegal</entry>
<entry>illegal</entry>
<entry>illegal</entry>
<entry>illegal</entry>
</row>
<row>
<entry><parameter>mode</parameter> = "wl"</entry>
<entry>wait</entry>
<entry>false</entry>
<entry>wait</entry>
<entry>false</entry>
<entry>illegal</entry>
<entry>illegal</entry>
<entry>illegal</entry>
<entry>illegal</entry>
</row>
<row>
<entry><parameter>mode</parameter> = "rd"</entry>
<entry>illegal</entry>
<entry>illegal</entry>
<entry>illegal</entry>
<entry>illegal</entry>
<entry>ok</entry>
<entry>ok</entry>
<entry>wait</entry>
<entry>false</entry>
</row>
<row>
<entry><parameter>mode</parameter> = "wd"</entry>
<entry>illegal</entry>
<entry>illegal</entry>
<entry>illegal</entry>
<entry>illegal</entry>
<entry>wait</entry>
<entry>false</entry>
<entry>wait</entry>
<entry>false</entry>
</row>
</tbody>
</tgroup>
</table>
<simplelist>
<member>ok: la segunda llamada tendrá éxito.</member>
<member>wait: la sedunda llamada esperará hasta que se llame a <function>dba_close</function> la primera vez.</member>
<member>false: la segunda llamada devuelve false.</member>
<member>illegal: no se pueden mezclar los modificadores <literal>"l"</literal> y <literal>"d"</literal> con el parámetro <parameter>mode</parameter>.</member>
</simplelist>
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>handler</parameter></term>
<listitem>
<para>
El nombre del <link linkend="dba.requirements">gestor</link> que
será usado para acceder a <parameter>path</parameter>. Se le pasan
todos los parámetros opcionales dados a <function>dba_open</function> y
puede actuar en su nombre.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve un gestor positivo en caso de éxito &return.falseforfailure;.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>4.3.0</entry>
<entry>
Es posible abrir ficheros de bases de datos sobre conexiones de red. Sin embargo,
en el caso en que se use una conexión de socket (como con http o ftp) la
conexión se bloqueará en lugar del recurso en sí. Esto es importante
para saber que en tales casos el bloqueo es ignorado simplemente en el recurso
y se tienen que encontrar otras soluciones.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>dba_popen</function></member>
<member><function>dba_close</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
-->