Estimados:
Si lo que se necesita es una clave unica, para identificar el registro (o los 
registros) en forma univoca, lo que se puede hacer, es armar una clave, que 
contenga el instante de creacion mas algo calculado del nombre de la maquina y 
del usuario.
Eso ya lo discutimos unos meses atras y hay muchos metodos posibles.
La ventaja es que no tendrías la lentitud (30% mas lento) que indica al menos 
la teoria acerca de manejar un indice autoincremental.
Con un indice como el que sugiero, ademas de orden de carga, te quedan tres 
pistas de auditora, cuando, donde y quien.
Saludos: Miguel

--- El jue 26-nov-09, Norberto Mario Alvarez <[email protected]> escribió:

De: Norberto Mario Alvarez <[email protected]>
Asunto: [GUFA] Campo Autoincremental
Para: "GUFA List Member" <[email protected]>
Fecha: jueves, 26 de noviembre de 2009, 10:59 am






 






Ok, muchas gracias, voy a cambiar la lógica!!!. Voy a tomar de
un select  el valor máximo en el momento de guardar. Desde ya muchas gracias. 

   

Norberto Alvarez 

   

   





De:
[email protected] [mailto:[email protected]] En nombre de Rafael Copquin

Enviado el: jueves, 26 de noviembre de 2009 09:17 a.m.

Para: GUFA List Member

Asunto: [GUFA] Campo Autoincremental 





   



Esa
es una de las razones por las cuales los campos autoincrementales se deberían
utilizar solamente como claves primarias surrogadas. Si por ejemplo las usamos
para generar números de facturas (que deberían coincidir con el número del
formulario preimpreso), en caso de error o de que, como dice Antonio, alguien
grabe antes que vos, se te puede armar una galleta infernal. 





  





Deberías
considerarlas equivalentes a un número de registro. Pero a diferencia de
recno(), que te da el número de registro y permanece constante a menos que
borres algunos registros y le hagas un pack a la tabla, dicho número es
absolutamente independiente del número de registro. En otras palabras, si tenés
una tablita con 10 registros y borrás el último, por ejemplo, le hacés un pack
y después agregás otro registro, dicho nuevo registro va a tener el número 10
de recno(), pero en el caso de la clave autoincremental va a tener el 11. Si
vos hubieras basado tu lógica en el recno() tendrías un resultado que no es el
correcto. En cambio, con el número autoincremental podés borrar todos los
registros que quieras, pero el registro siempre conserva su identidad 
inalterable.
Las relaciones entre tablas no se te modifican, en fin...... 





  





Rafael
Copquin 





  





  







-----
Original Message -----  





From: Antonio M. Castaño  





To: GUFA List Member  





Sent: Wednesday, November
25, 2009 8:27 PM 





Subject: [GUFA] Campo
Autoincremental 





   





Hola Norberto: 





  





Es así. Es lo que hacen todos los motores de base de datos.
Cuando vos hacés el append te "reserva" el número siguiente de el
campo autoncremental. Hace eso, porque en ese mismo momento, alguien podría
estar haciendo otro append. Si no tiene reservado una para vos, qué número le
asignaría si el otro graba primero?. Lo que te garantiza el motor es que sean
todos diferentes. NO que sean consecutivos. 





  





Si necesitás un campos incremental, todos consecutivos, lo
tenés que manejar de otra manera, con lógica programada por vos. 





  





Saludos! 







 




      Yahoo! Cocina

Encontra las mejores recetas con Yahoo! Cocina.


http://ar.mujer.yahoo.com/cocina/

Responder a