Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Duda sobre campo autonumerico (https://www.clubdelphi.com/foros/showthread.php?t=16073)

JulioGO 14-11-2004 00:17:12

Duda sobre campo autonumerico
 
Hola forofos:

Quisiera despejar algunas dudas sobre el campo autonumerico:

Primero: Que tan cierto es que el mencionado campo, consuma mas memoria por ser entero y no varchar.

Segundo: Si mi BD esta en una red, y dos estaciones insertar una fila simultaneamente, ¿quien será el primero en ser numerado?, o en todo caso ¿como funciona o deberia funcionar?

Saludos.

Lepe 14-11-2004 14:00:43

Primero:
Cita:

Shortint –128..127 signed 8-bit
Smallint –32768..32767 signed 16-bit
Longint –2147483648..2147483647 signed 32-bit
Int64 –2^63..2^63–1 signed 64-bit
Byte 0..255 unsigned 8-bit
Word 0..65535 unsigned 16-bit
Longword 0..4294967295 unsigned 32-bit
Un char ocupa 8 bits, sin comentar idiomas multibyte, si tienes digamos un campo varchar de 10 serian 80 bits.... pues ya ocupa mas que un entero largo.

Estamos hablando de bits, o sea, que no es tan grave.

Segundo
Digamos de dos usuarios A y B, el primero que le de a anadir, es el que obtiene el numero mas pequeno,

A le da a anadir,
despues B,
ahora A cancela el registro.
B guarda el registro.

UPPPs te queda un hueco con el autonumerico.

Cuando anadas datos de prueba los autonumericos no se reinician, y tendras que acceder a una tabla de sistema para volverlo a poner a cero. Depende del sistema gestor de bases de datos tendras que hacer una u otra cosa.

A lo que vamos, es mejor poner un campo Entero y controlar tu el valor que se le va a dar al anadir un registro, por ejemplo con una consulta a la base datos al anadir un registro.

Saludos

kinobi 14-11-2004 15:01:39

Hola,

Cita:

Empezado por Lepe
Un char ocupa 8 bits, sin comentar idiomas multibyte, si tienes digamos un campo varchar de 10 serian 80 bits.... pues ya ocupa mas que un entero largo.

me temo (si no me equivoco) que JulioGO está hablando de tipos de datos InterBase y no de tipos de datos Delphi, aunque no hay grandes diferencias con lo que tú expones.

En caso de ser así...

Integer (generadores) -> 32 bits (4 Bytes)
Varchar -> Depende del juego de caracteres utilizado (como mínimo, un byte por caracter)

Cita:

Empezado por Lepe
Cuando anadas datos de prueba los autonumericos no se reinician, y tendras que acceder a una tabla de sistema para volverlo a poner a cero. Depende del sistema gestor de bases de datos tendras que hacer una u otra cosa.

En el caso de InterBase no existe el tipo Autonumérico. Lo más parecido son los generadores/enteros. Para reiniciar/fijar un generador tendrá que "jugar" con la función incorporada GEN_ID(...)

Saludos.


La franja horaria es GMT +2. Ahora son las 01:33:30.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi