FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Como genero claves secuenciales
Hola, lo que trato de hacer es generar automaticamente una clave, basado en incrementos, es decir abro mi tabla clientes y con la funcion recordcount, me cuenta cuantos registros tengo, y yo le sumo 1, pero el caso, es que el rango de valores debe de ir de 000001 a 999999.
Si tengo 1 registro seria: 000001 Si tengo 10 registros: 000010 Si tengo 100 registros: 000100 .. .. .. Cómo le puedo hacer para que me de esta secuencia?? Gracias por su colaboracion |
#2
|
||||
|
||||
Hola Lizette,
¿Es necesario que la clave cuente con ese formato? ¿Digo, es un requisito que tenga esos ceros a la izquierda? Muchos motores de base de datos tienen un tipo autoincremental. Te preguntaba si es necesario ese formato precisamente por esto, si se emplean este tipo obtendrás, 1, 1543, 545, etc. Es decir, sin los ceros. Necesitamos saber que motor usas para saberte ayudar. Saludos, |
#3
|
|||
|
|||
estoy usando MySql con ODBC
El caso, es que esa clave debe de ser de 6 digitos, y no se debe de repetir..
Es por ello el formato que puse, o que otra solucion puedo tomar, para que no se repita y sea de 6 digitos? |
#4
|
||||
|
||||
Hola Lizette, si utilizas un campo autoincremental tu clave no se va a repetir, pero no tendra los ceros a izquierda, sino sera 1,2,3,4,5......, como te ha explicado el amigo Marcelo.
Para rellenar ceros a la izquierda, lo puedes hacer así:
claro que tu campo tendría que ser de tipo Varchar. Si utilizas el campo autoincremental, se almacenara como te digo pero para mostrar puedes utilizar la propiedad DisplayFormat de tu campo. Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#5
|
||||
|
||||
Creo que deberías tener una tabla de contadores.
Por ejemplo una con los campos: NOMBRE_TABLA string CONTADOR integer Al momento de insertar un nuevo registro, lees de la tabla de contadores el contador que corresponda, lo incrementas, le das el formato de 6 digitos y lo utilizas. La opción de utilizar la cantidad de elementos de la tabla no es muy fiable, por lo siguiente: Añades 10 elementos. - Se numeran del 000001 al 000010 Borras un elemento. - Supongamos el 000005 Añades un elemento nuevo - La cantidad es 9 elementos. El que añades es el 10mo. El identificador será nuevamente 000010 (duplicado!) |
#6
|
||||
|
||||
Es una mala, mala idea tener como campos claves CUALQUIER tipo de codigos.
Un campo clave solo debe ser de 2 tipos, y ya: Un autoincremental o un GUID. Si necesitas un codigo por razones del usuario o de identificacion mas "humana" esta bien, pero debes analizar si la razon del codigo es una representacion humana o una imitacion innecesaria de una clave interna del sistema. Si solo se requiere para identificar un registro, un autonumerico es mas que suficiente.
__________________
El malabarista. |
#7
|
||||
|
||||
Me parece que la idea de caro es bastante buena y simple, contar con un campo autoincremental y emplear DisplayFormat para visualizarlo con los ceros.
Esto permite facilitar las consultas, se evita el tener que estar analizando dentro de strings (subcadenas) y en ciertas ocasiones unos molestos casts o moldeos de tipos. Por otro lado, si el motor no soporta este tipo de campo la recomendación es duilioisola es más que recomendable. Combinando esta alternativa con la técnica de DisplayFormat se pueden conseguir buenos resultados. Saludos, |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
como genero una numeracion en QuickReport ...?¿ | marcelinux | Varios | 1 | 12-09-2007 00:48:30 |
¿Cómo genero un informe en Word? | EveElgrande | Internet | 3 | 25-07-2006 15:46:54 |
COmo genero un mensaje antes de un Sysutils.Abort | Bitbanner | Conexión con bases de datos | 19 | 16-02-2005 17:41:58 |
ToolBar como Genero una | mtpedro | Conexión con bases de datos | 2 | 29-10-2004 16:14:01 |
Numero secuenciales | lafirma | Firebird e Interbase | 9 | 25-11-2003 22:06:30 |
|