| 12
 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
 
 | .\" Copyright (c) 1990, 1993
.\"	The Regents of the University of California.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"	@(#)recno.3	8.5 (Berkeley) 8/18/94
.\"
.\" Translated into Spanish on Tue Apr 12 1999 by
.\"	Juan Piernas Cnovas <piernas@ditec.um.es>
.\"
.TH RECNO 3 "18 Agosto 1994"
.UC 7
.SH NOMBRE
recno \- mtodo de acceso a bases de datos con registros numerados
.SH SINOPSIS
.nf
.ft B
#include <sys/types.h>
#include <db.h>
.ft R
.fi
.SH DESCRIPCIN
La ruinta
.IR dbopen
es la interfaz de biblioteca para los ficheros de bases de datos. Uno de los
formatos de fichero soportados es el de los ficheros con registros numerados
(que llamaremos regnum). La descripcin general de los mtodos de
acceso a bases de datos se encuentra en la pgina de manual de 
.IR dbopen (3);
esta pgina de manual slo describe informacin especfica de regnum.
.PP
La estructura de datos de registros numerados est formada por registros
de longitud o fija o variable almacenados en un formato de fichero plano,
accedido por el nmero lgico de registro.
La existencia del registro nmero cinco implica la existencia de los
registros del 1 al 5, y la eliminacin del registro nmero 1 hace
que el registro nmero 5 sea renumerado al registro nmero 4, de la
misma manera que el cursor se desplazar un registro hacia abajo si se
encuentra posicionado despus del registro nmero 1.
.PP
La estructura de datos especfica del mtodo de acceso regnum proporcionada
a
.I dbopen
se define en el fichero cabecera <db.h> como sigue:
.PP
typedef struct {
.RS
u_long flags;
.br
u_int cachesize;
.br
u_int psize;
.br
int lorder;
.br
size_t reclen;
.br
u_char bval;
.br
char *bfname;
.RE
} RECNOINFO;
.PP
Los elementos de esta estructura se definen de la siguiente manera:
.TP
flags
El valor de las opciones se especifica mediante una operacin
.IR O -lgica
de cualquiera de los siguientes valores:
.RS
.TP
R_FIXEDLEN
Los registros son de longitud fija, no delimitados por bytes.
El elemento
.I reclen
de la estructura especifica la longitud del registro y el elemento
.I bval
de la estructura se usa como carcter de relleno.
Todos los registros, insertados en la base de datos, cuya longitud es ms
pequea que
.I reclen
bytes, se completan automticamente con el carcter
.IR bval .
.TP
R_NOKEY
En la interfaz especificada por
.IR dbopen ,
la recuperacin secuencial de registros rellena tanto la clave del invocador
como las estructuras de datos.
Si se especifica la opcin R_NOKEY, no se necesitarn las rutinas con
.I cursor
para rellenar la estructura de la clave.
Esto permite a las aplicaciones recuperar registros al final de los ficheros
sin leer todos los registros que intervienen.
.TP
R_SNAPSHOT
Esta opcin exige que se tome una instantanea del fichero cuando se llame a
.IR dbopen ,
en lugar de permitir que cualquier registro sin modificar sea ledo del
fichero original.
.RE
.TP
cachesize
Tamao mximo sugerido, en bytes, de la memoria cach.
Este valor
.B slo
es consultivo y el mtodo de acceso reservar ms memoria antes que fallar.
Si
.I cachesize
es 0 (no se especifica un tamao) se usa una cach por defecto.
.TP
psize
El mtodo de acceso regnum almacena las copias residentes en memoria de sus
registros en un rbolB (btree).
Este valor es el tamao (en bytes) de las pginas usadas para nodos del
rbol.
Si
.I psize
es 0 (no se especifica un tamao de pgina) se selecciona un tamao de pgina
basado en el tamao de bloque de E/S del sistema de ficheros subyacente.
Vase
.IR btree (3)
para ms informacin.
.TP
lorder
El orden de los bytes para los enteros de los metadatos almacenados en la
base de datos. El nmero debera representar el orden como un entero; por
ejemplo, el orden `el byte de mayor peso el ltimo' (orden ascendente)
sera el nmero 4321.
Si
.I lorder
es 0 (no se especifica un orden) se utiliza el orden del anfitrin actual.
.TP
reclen
El tamao de un registro de tamao fijo.
.TP
bval
El byte delimitador a usar para marcar el final de un registro para los
registros de tamao variable, y el carcter de relleno para los registros de
tamao fijo.
Si no se especifica un valor, se utilizan caracteres `nueva lnea' 
(``\en'') para marcar el final de los registros de longitud variable y los
registros de longitud fija se completan con espacios.
.TP
bfname
El mtodo de acceso regnum almacena las copias residentes en memoria de sus
registros en un rbolB.
Si bfname no es NULL, especifica el nombre de un fichero rbolB, 
como si se especificara el nombre de fichero para una llamadada a dbopen de
un fichero rbolB.
.PP
La parte de datos del par clave/datos usado por el mtodo de acceso regnum
es la misma que la de los otros mtodos de acceso.
La clave es diferente.
El campo
.I data
de la clave debera ser un puntero a una posicin de memoria del tipo
.IR recno_t ,
tal y como se define en el fichero cabecera <db.h>.
Normalmente, este tipo es el tipo entero sin signo ms grande disponible
para la implementacin.
El campo
.I size
de la clave debera ser el tamao de ese tipo.
.PP
Ya que puede no haber ningn metadato asociado con los ficheros subyacentes
del mtodo de acceso regnum, cualquier cambio realizado a los valores por
defecto (por ejemplo, a la longitud de los registros de tamao fijo o al
valor del separador de bytes) se debe especificar explcitamente cada vez
que se abra el fichero.
.PP
En la interfaz especificada por
.IR dbopen ,
el uso de la interfaz
.I put
para crear un nuevo registro provocar la creacin de varios registros
vacos si el nmero de registro es mayor, en ms de uno, que el nmero del
mayor registro actualmente en la base de datos.
.SH ERRORES
Las rutinas del mtodo de acceso
.I regnum
pueden fallar y asignar a
.I errno
cualquiera de los errores especificados para la rutina de biblioteca
.IR dbopen (3)
o el siguiente:
.TP
[EINVAL]
Se ha intentado aadir un registro a una base de datos de registros de
tamao fijo que s demasiado grande para caber.
.SH "VASE TAMBIN"
.IR btree (3)
.IR dbopen (3),
.IR hash (3),
.IR mpool (3),
.sp
.IR "Document Processing in a Relational Database System" ,
Michael Stonebraker, Heidi Stettner, Joseph Kalash, Antonin Guttman,
Nadene Lynn, Memorandum No. UCB/ERL M82/32, May 1982.
.SH FALLOS
Slo se soportan los rdenes de bytes ascedente (el byte de mayor peso el
ltimo) y descendente (el byte de menor peso el ltimo).
 |