Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Cómo cambiar, desde Delphi, el próximo valor que tiene que dar un autogenerador (https://www.clubdelphi.com/foros/showthread.php?t=14195)

Giniromero 13-09-2004 13:11:23

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

guillotmarc 13-09-2004 14:22:49

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.

Giniromero 17-09-2004 09:58:07

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

jachguate 17-09-2004 11:22:46

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.

;)

Giniromero 20-09-2004 10:49:38

Bueno, supongo que tienes razón, voy a ver como hago con esto que me decis.

GRacias,

Virginia


La franja horaria es GMT +2. Ahora son las 04:56:10.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi