FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Cómo cambiar, desde Delphi, el próximo valor que tiene que dar un autogenerador
Hola,
Estoy trabajando con Delphi 6 e interbase 7. Dentro de mi aplicación tengo un autogenerador que algunas veces, puedo necesitar que por ejemplo, en vez de darme el valor 8, me de el 10 y sigua dando valores a partir de este. El caso es que necesito que esto lo pueda gestionar la persona encargada, sin acceder a base de datos, esto es, que pueda hacerlo directamente, desde el propio programa, de modo que no tenga que pedir el cambio cada vez que lo necesite, al administrador de bases de datos, por una cuestión de rapidez. Hay alguna manera de gestionar esto? Muchas gracias a todos, por la ayuda de ante mano. Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
#2
|
||||
|
||||
Hola.
La solución pasa por indicarle un incremento distinto al 1 al generador (incluso puedes pasarle un incremento negativo). Por ejemplo, para pasar el generador del 8 al 10, haces previamente un gen_id(generador, 2). En concreto tienes que hacer un gen_id(generado, nuevo_valor - valor_actual). Lo cual, en una consulta parametrizada podria ser algo como : select gen_id(generador, :valor - gen_id(generador, 0)) from rdb$database Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#3
|
|||
|
|||
Hola guillotmarc,
Lo primero disculpa que no haya visto el mensaje hasta hoy, pero estos dias he estado sin internet. Bueno, lo que tu me dices está muy bien si la persona que tiene que hacerlo tiene las ideas claras, pero es que estaba acostumbrada a ver el valor que había en un campo, y a escribir el siguiente o dos posteriores, dependiendo de lo que necesitase. Ese autogenerador devuelve el numero de recibo para los cobros. El caso es que necesitaría que esta persona pudiera ver el que esta actualmente, para saber cual es el último recibo que se ha expedido, para a partir de ahí poner el valor del próximo. Por ejemplo, a inicios de año tiene que cambiar totalmente la numeración de los recibos para el nuevo año, y no sería tan sencillo como sumar o restarle al generador, sino que pueda asignarle el valor que sea, puediendo ver el que había previamente. No se si esto es factible, ni si me he explicado con claridad. En cualquier caso, gracias, por la ayuda. Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
#4
|
||||
|
||||
Hola Virginia.
Date cuenta que con el método expuesto por marc, podes dejarle a la persona introducir cualquier valor deseado, y luego pasarlo en el parámetro valor a la sentencia indicada por marc. Para obtener el valor actual del generador, basta llamarlo con gen_id(generador, 0), tal como se ilustra también en el mismo ejemplo. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#5
|
|||
|
|||
Bueno, supongo que tienes razón, voy a ver como hago con esto que me decis.
GRacias, Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|