Actualmente estoy trabajando en la modificación de una base de datos Firebird v. 1.5.Actualizando el valor del generador
La estructura de la base de datos se modificará ejecutando consultas desde una aplicación delphi utilizando componentes interbase, el problema que tengo es que necesito ejecutar muchas consultas, algunas de las cuales incluyen crear generadores y actualizar el valor del generador, problema es que necesito para lograrlo en el menor número posible de consultas, pero parece (al menos para mí) que esto no es realmente posible, lo que estoy tratando de hacer es la siguiente:
/* this command creates a generator to be used for table TABLENAME */
CREATE GENERATOR GEN_TABLENAME;
Así Creé un generador, ahora necesito establecer su valor en el ID máximo actual de la tabla TABLENAME, así:
/* one would expect that the following command would work, well it doesn't */
SET GENERATOR GEN_TABLENAME TO (SELECT MAX(ID) FROM TABLENAME);
Ahora, ¿hay alguna solución para esto, o estoy obligado a:
- crear el generador
- obtener el ID máx
- actualización del valor del generador
y repita proceso para cada mesa?
También espera que
SELECT
SELECT MAX(ID) AS ID_TABLENAME_1 FROM TABLENAME_1,
...
SELECT MAX(ID) AS ID_TABLENAME_N FROM TABLENAME_N
habría una solución para conseguir el máximo de identificación de cada mesa en un comando, pero no es así.
¿Qué componentes estás usando? – rstrelba
@rstrelba interbase – ComputerSaysNo
Me interesaron los nombres de los componentes delphi. TIBDatabase? TIBQuery? TIBDataSet? – rstrelba