Attualmente sto lavorando alla modifica di un database Firebird 1.5.Aggiornamento problema valore generatore
La struttura del database verrà modificata eseguendo query da un'applicazione delphi utilizzando componenti interbase, il problema che sto affrontando è che ho bisogno di eseguire molte query, alcune delle quali includono la creazione di generatori e l'aggiornamento del valore del generatore, il problema è che ho bisogno di raggiungere questo obiettivo nel minor numero di domande possibili, ma sembra (almeno per me) che questo non è davvero possibile, quello che sto cercando di fare è la seguente:
/* this command creates a generator to be used for table TABLENAME */
CREATE GENERATOR GEN_TABLENAME;
Così Ho creato un generatore, ora ho bisogno di impostare il valore al max id corrente dalla tabella TABLENAME, in questo modo:
/* one would expect that the following command would work, well it doesn't */
SET GENERATOR GEN_TABLENAME TO (SELECT MAX(ID) FROM TABLENAME);
Ora, c'è qualche soluzione per questo, o sto costretto a:
- creare il generatore
- ottenere l'ID massimo
- aggiornamento del valore del generatore
e ripetere processo per ogni tavolo?
Ho anche previsto che
SELECT
SELECT MAX(ID) AS ID_TABLENAME_1 FROM TABLENAME_1,
...
SELECT MAX(ID) AS ID_TABLENAME_N FROM TABLENAME_N
sarebbe una soluzione per ottenere il massimo id da ogni tavolo in un unico comando, ma non è così.
quali componenti stai usando? – rstrelba
@rstrelba interbase – ComputerSaysNo
Ho nomi interessati di componenti delphi. TIBDatabase? TIBQuery? TIBDataSet? – rstrelba