En realidad no estás hablando de autoincrementales,¿verdad? Porque los campos 
autoincrementales en VFP son readonly, entonces te da error si intentás 
cambiarlos. Te referís a una tabla auxiliar que tiene el último número para 
cada tabla, me parece.

Rafael Copquin

  ----- Original Message ----- 
  From: Estela Lázaro 
  To: GUFA List Member 
  Sent: Thursday, November 26, 2009 10:50 AM
  Subject: [GUFA] Campo Autoincremental


  Hola

  Yo uso una tablita auxiliar con todos los campos "autoincrementales" y le voy 
sumando 1 y si revierto y es el mismo - 1, se lo resto.

  Me parece más rápido si tenés muchs registros

  Saludos
   
  Estela Lázaro

  D&SIP


  Desarrollo y Servicios Informáticos Profesionales


  www.dsip.com.ar 







------------------------------------------------------------------------------
  De: Norberto Mario Alvarez <[email protected]>
  Para: GUFA List Member <[email protected]>
  Enviado: jueves, 26 de noviembre, 2009 9:59:13
  Asunto: [GUFA] Campo Autoincremental


  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!



------------------------------------------------------------------------------

  Encontra las mejores recetas con Yahoo! Cocina. 
  http://ar.mujer.yahoo.com/cocina/

Responder a