![]() |
Restaurar valor de un generador
Buenas tardes amigos foreros.
Pues el título lo dice todo. Me gustaría saber cómo hago para restaurar el valor un generador. Mil gracias por vuestra ayuda GustavoCruz |
El sistema "de toda la vida":
SET GENERATOR GEN_TBTIPOSIVA_ID TO 0; El nuevo sistema desde FB 2.1: ALTER SEQUENCE GEN_TBTIPOSIVA_ID RESTART WITH 0; |
Hola Casimiro Notevi, gracias por tu respuesta.
He intentado como me sujeriste y me muestra un error. Lo que quiero hacer es que cuando en un determinado momento y inserte un valor en una tabla, este valor sea tomado por el generador. Esto es porque necesito controlar unos datos que se generarán anualmente, De este modo; Tengo una tabla de configuraciones en la cual hay un campo que me almacena el inicio de una numeración y este valor ser debe reiniciar cada año, o cuando el usuario lo decida en la cantidad que él quiera. Me imaginé que eso se solucionaba con un trigger. pero la sentencia que me sugieres no es me está funcionando. Saludos y Mil gracias por tu tiempo Gustavo Cruz |
Cita:
SET GENERATOR GEN_TBTIPOSIVA_ID TO 0; Evidentemente GEN_TBTIPOSIVA_ID debes sustituirlo por el nombre de tu generador. Cita:
Y si quieres hacerlo al revés, entonces dale el valor que quieras: SET GENERATOR GEN_TBTIPOSIVA_ID TO 38374384; |
Posible solución ...
Gustavo:
Para reiniciar a cero un generador desde un bloque PSQL (es decir desde un procedimiento almacenado o desde un disparador), tienes que ejecutar la siguiente instrucción:
Una vez que lo hayas reiniciado a cero le puedes sumar cierta cantidad para ponerlo a cierto valor.
Saludos, Gerardo Suárez Trejo PD. No estoy muy seguro si la solución que te da Casimiro funcione haciendo lo desde un bloque PSQL, según yo creo que no.... saludos nuevamente |
Perdón, no había leído "desde un trigger"
|
Hola a todos y gracias por sus respuestas y sugerencias,
He probado como mi amigo Gallosuarez me ha indicado, pero me aparece el siguiente error que me lanza IBExpert
Gracias por vuestro tiempo y vuestra ayuda Gustavo Cruz |
Buenas tardes.
Cita:
Prueba a ejecutarlo desde Tools -> Script Executive, en lugar de hacerlo desde Tools -> SQL Editor. Saludos. |
Posible solución ...
Gustavo:
Acuérdate que TODA instrucción SELECT dentro de un bloque PSQL debe de llevar la clausula INTO :valor_de_variable. Es por esta razón que te marca un error en ";" Es decir, el compilador de la base de datos está esperando dicha instrucción. Aquí te pongo un procedimiento donde yo lo utilizo.
Saludos, Gerardo Suárez Trejo. PD. En tu caso, debes de utilizar las llamadas variables Tontas ... ¿me explico? |
Gracias Gallosuarez, por tu colaboración. Eso era exactamente lo que estaba ocurriendo.
He notado que ultimamente sufro de segera :D:D:D Nuevamente mil gracias por sus sugerencias y respuestas Gustavo Cruz |
| La franja horaria es GMT +2. Ahora son las 19:12:04. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi