Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Como generar id autonumerico para mi sistema?

Estas en el tema de Como generar id autonumerico para mi sistema? en el foro de Visual Basic clásico en Foros del Web. Si estoy en 2 makinas diferentes(pc1 y pc2) y abro la ventana para crear un nuevo registro en tiempos similares me aparece el mismo codigo ...
  #1 (permalink)  
Antiguo 05/05/2009, 20:07
 
Fecha de Ingreso: mayo-2009
Mensajes: 238
Antigüedad: 14 años, 11 meses
Puntos: 7
Como generar id autonumerico para mi sistema?

Si estoy en 2 makinas diferentes(pc1 y pc2) y abro la ventana para crear un nuevo registro en tiempos similares me aparece el mismo codigo por ejemplo el 04 y en la pc1 se graba el registro bien, pero en la 2da pc me envia el error de clave primaria repetida ya que el codigo ya fue registrado.
Me han dicho que lo mejor es utilizar el valor auto_increment, tendre que rediseñar la bd que me han dado.
El codigo se genera partiendo del codigo del ultimo registro creado, que fue un error fatal

La pregunta es, se puede presentar el error q tengo al usar el auto_increment?
Como se debe crear un campo id o codigo que sera pk en mysql, que tipo de dato seria el standar ,generico o comunmente utilizado

probando realize esto codigo int(2) primary key auto_increment, pero no me respeta el int(2) es decir deberia solo ingresar 2 digitos como maximo pero me acepta 3 y supongo que es infinito
  #2 (permalink)  
Antiguo 05/05/2009, 20:40
 
Fecha de Ingreso: abril-2009
Mensajes: 136
Antigüedad: 15 años
Puntos: 1
Respuesta: Como generar id autonumerico para mi sistema?

Ok colega el autoincrement puede que no te de error pero eso dependera de tu tipo de aplicacion te anexo un codigo utilizado y me funciona al pelo

Call traza("Division de Productos", "Modi", Text1(0)) 'Llamo la funcion de llenado de traza
Case AGREGAR_DIVISION 'En caso de agregar
If Not rc.BOF Then 'Compruebo el recordset en caso de no estar basio
rc.MoveLast 'Obtengo el ultimo registro de la tabla
FRMDIVISION.Text1(0).Text = Format(rc.Fields("div_codigo") + 1, "000000")
'Selecciono el ultimo registro mas uno
Else 'En caso contrario
FRMDIVISION.Text1(0) = "000001" 'Si no existe le doy el valor inicial
End If 'Fin de revision de Recordset

Call insertar(Tabla, Campos, Valores) 'Llamo la funcion del Insertar

End Select 'Culmino el Select

Ok arriba te lo coloque espero te sirva a lo que hago es guastamente antes de mandar a realizar el insert vuelvo a tomar la variable del valor la probabilidades son extitas de que dos maquinas tomen al tiempo este valor debido a que la operacion se tarda 0,001 segundo jejejej
  #3 (permalink)  
Antiguo 05/05/2009, 21:33
 
Fecha de Ingreso: mayo-2009
Mensajes: 238
Antigüedad: 14 años, 11 meses
Puntos: 7
Respuesta: Como generar id autonumerico para mi sistema?

ok, generar el codigo 1 linea antes de realizar el insert me parece que es lo mas optimo.
Que tipo de dato es el que se debe utilizar, un char es el que me han recomendado, espero alguien pueda darme su punto de vista

saludos y gracias
  #4 (permalink)  
Antiguo 05/05/2009, 22:58
 
Fecha de Ingreso: abril-2009
Mensajes: 136
Antigüedad: 15 años
Puntos: 1
Respuesta: Como generar id autonumerico para mi sistema?

Puedes usar char varchar o decimal dependiendo del tipo de dato en mi caso siempre uso char para los codigos
  #5 (permalink)  
Antiguo 06/05/2009, 08:25
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Respuesta: Como generar id autonumerico para mi sistema?

De igual manera los campo autoincrementables casi nunca son suficientes para las aplicaciones que he realizado, lo mejor es siempre manejar tu propio codigo e incrementarlo de manera manual, aunque para esto siempre hay que anexar en algun campo el status de ese campo (para que no se repita). O tambien la otra manera que uso es meter el procedimiento de obtener el codigo en una transaccion de tal manera que todo (select y update) se ejecute como si fuera una sentencia unica.
Es mejor usar varchar para los codigos ya que a veces es necesario repetir el codigo pero de diferentes sucursales o años por ejemplo
  #6 (permalink)  
Antiguo 06/05/2009, 11:45
 
Fecha de Ingreso: mayo-2009
Mensajes: 238
Antigüedad: 14 años, 11 meses
Puntos: 7
Respuesta: Como generar id autonumerico para mi sistema?

Cita:
Iniciado por Sergestux Ver Mensaje
Es mejor usar varchar para los codigos ya que a veces es necesario repetir el codigo pero de diferentes sucursales o años por ejemplo
Que tal, pero si el codigo es clave primaria no se va a poder repetir aunque sea varchar, bueno me puedes explicar como seria la logica para las sucursales o años, no entendi bien como se aplica para estos casos?
  #7 (permalink)  
Antiguo 06/05/2009, 15:32
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Respuesta: Como generar id autonumerico para mi sistema?

Por ejemplo sucursal A seria A000000001 la sucursal B podria ser B000000001 para llevar un consecutivo por cada sucursal
  #8 (permalink)  
Antiguo 06/05/2009, 16:49
 
Fecha de Ingreso: abril-2009
Mensajes: 136
Antigüedad: 15 años
Puntos: 1
Respuesta: Como generar id autonumerico para mi sistema?

Serges seria preferible manejar un valor con llave compuesta para eso y luego aplicar filtros en las consultas
  #9 (permalink)  
Antiguo 06/05/2009, 17:12
 
Fecha de Ingreso: mayo-2009
Mensajes: 238
Antigüedad: 14 años, 11 meses
Puntos: 7
Respuesta: Como generar id autonumerico para mi sistema?

Que tal bueno ya que salio el ejemplo de sucursales, aunque esto no tiene nada que ver pero se asemeja, como se maneja el numero de serie de una factura dentro de un sistema.

Por ejemplo este numero de factura "011 60300", el 011 seria el numero de serie que biene pre-impreso y el 60300 el codigo autogenerado.

No se mucho del tema ya que recien empiezo y me estoy percatando de pequeños detalles, por ejemplo en las facturas pre-impresas biene al final en letras pequeñas Del 011-60001 Al 011-65000 es decir bienen el talonarios de 5mil papeles pre-impresos

Estoy un poco confundido con esto, aunque no lo necesito por ahora me gustaria enteder como funciona, podria existir el codigo 011-60100 y en tambien el 012-60100 es decir debe repetirse obligatoriamente el codigo 60100 solo varia el numero de serie y si lo autogenero no voy a poder tener el mismo codigo autogenerado, no se me hayan entendido?, en todo caso tratare de crear otro post
  #10 (permalink)  
Antiguo 06/05/2009, 18:41
 
Fecha de Ingreso: abril-2009
Mensajes: 136
Antigüedad: 15 años
Puntos: 1
Respuesta: Como generar id autonumerico para mi sistema?

Ok para poderte ayudar dime de que pais eres por que dependera de varios factores segun gacetas locales fijate aqui en venezuela

Se manejan dos codigos uno llamado numero de control fiscal y numero de factura eso quiere decir que el sistema debe seguir un correlativo sin importar el numero de control y al grabar es cuando se deberia de pedir el numero de control para un segundo valor no se si me explique
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:48.