campo autonumerico
saludos a todos, desde ya agradecido con la respuesta..., necesito crear un campo autonumerico, en vfp6..es para codigos de ingreso
Mira a ver si te sirve:
Imaginando q la tabla_A ya existe y q el campo_A también de tipo char (6)
select tabla_A
go top
num=0
scan
num=num+1
replace campo_A with PADL(num,6,'0') in tabla_A
endscan
Contestame te sirva o no,ok?
Imaginando q la tabla_A ya existe y q el campo_A también de tipo char (6)
select tabla_A
go top
num=0
scan
num=num+1
replace campo_A with PADL(num,6,'0') in tabla_A
endscan
Contestame te sirva o no,ok?
Buenas tardes
He creado una tabla en VFP con 7 campos, uno de ellos necesito que sea autonumérico. Necesito que este campo vaya desde 1 hasta 1500000. Cómo puedo hacer para que se agregue a este campo los valores o qué propiedad le asigno al campo para que cumpla esta función?
Gracias por la ayuda que pueda recibir
He creado una tabla en VFP con 7 campos, uno de ellos necesito que sea autonumérico. Necesito que este campo vaya desde 1 hasta 1500000. Cómo puedo hacer para que se agregue a este campo los valores o qué propiedad le asigno al campo para que cumpla esta función?
Gracias por la ayuda que pueda recibir
Tenes que crear un procedimiento en la base de datos.
Primero empezá a modificar la Base de Datos con: MODIFY DATABASE [tu base de datos].
Se te abre la base de datos con todas las tablas. Hace click con el botón derecho en un espacio libre y elegà la opción "Edit Stored Procedures..."; se habre una ventana para escribir código.
Ahora escribà el siguiente código:
*- Supongo que el campo se llama Id y existe un indice sobre el
PROCEDURE max_id
PARAMETERS pTabla
USE ("tu base de datos" + m.pTabla) IN 0 AGAIN ALIAS "__MaxId" ORDER BY Id
GO BOTTOM IN "__MaxId"
m.Next_Id = __MaxId + 1
USE IN "__MaxId"
RETURN m.Next_Id
ENDPROC
Después cerrá la ventana y andá a modificar la tabla. Parate en el campo que quieras que sea autonumérico y en la opción "Default value" (abajo a la derecha) poné: Max_Id(nombre_tabla)
Eso es todo. De esta manera la Base de Datos genera el valor de campo y te olvidas de esto.
Si no entendiste algo escribime (ahora me voy de vacaciones y hasta Febrero no vuelvo)
Espero haber sido util. Saludos
Primero empezá a modificar la Base de Datos con: MODIFY DATABASE [tu base de datos].
Se te abre la base de datos con todas las tablas. Hace click con el botón derecho en un espacio libre y elegà la opción "Edit Stored Procedures..."; se habre una ventana para escribir código.
Ahora escribà el siguiente código:
*- Supongo que el campo se llama Id y existe un indice sobre el
PROCEDURE max_id
PARAMETERS pTabla
USE ("tu base de datos" + m.pTabla) IN 0 AGAIN ALIAS "__MaxId" ORDER BY Id
GO BOTTOM IN "__MaxId"
m.Next_Id = __MaxId + 1
USE IN "__MaxId"
RETURN m.Next_Id
ENDPROC
Después cerrá la ventana y andá a modificar la tabla. Parate en el campo que quieras que sea autonumérico y en la opción "Default value" (abajo a la derecha) poné: Max_Id(nombre_tabla)
Eso es todo. De esta manera la Base de Datos genera el valor de campo y te olvidas de esto.
Si no entendiste algo escribime (ahora me voy de vacaciones y hasta Febrero no vuelvo)
Espero haber sido util. Saludos
Como no existe un campo de ese tipo vas a tener que programar codigo que lo simule.
Si tenés una base de datos podés agregar un desencadenante al insertar (en el diseño de la tabla), donde irÃa la expresión hacés una llamada algun .prg en forma de función. En este .prg buscás el código mayor, le sumás uno y lo guardás en la tabla.
Si usás tablas libres podrÃas hacer el mismo prg pero lo tenés que llamar vos.
Todo esto no lo probé, es teórico, pero se me ocurre que asà podrÃa andar.
Si tenés una base de datos podés agregar un desencadenante al insertar (en el diseño de la tabla), donde irÃa la expresión hacés una llamada algun .prg en forma de función. En este .prg buscás el código mayor, le sumás uno y lo guardás en la tabla.
Si usás tablas libres podrÃas hacer el mismo prg pero lo tenés que llamar vos.
Todo esto no lo probé, es teórico, pero se me ocurre que asà podrÃa andar.
