PDA

Visualizza la versione completa : [DELPHI] ExecSql con più comandi


maffio
16-12-2008, 12:19
devo eseguire questi comandi

delete from tab1;
TRUNCATE tab2;
insert into tab1 select * from tab2;

Utilizzando i componenti dbEXpress in Delphi 7 preparavo il componente TSQLQUERY con questi comandi separati dal ";", lanciavo ExecSQL e tutto funziona.

Con i componenti DBExpress del delphi 2009, la stessa procedura non funziona dicendo che c'è un errore vicino a ";TRUNCATE tab2;" come se non capisse che i due comandi sono da eseguire separatamente.

In Delphi 2009 non fuziona più il ";". Bisogna utilizzare altre funzioni?

Grazie per l'aiuto

123delphi321
16-12-2008, 16:05
ciao,

anche io, pur non utilizzando il 2009.... quindi con delphi7 e con i componenti della palette Interbase ho avuto problemi del genere.

ho risolto inserendo più componenti IbSql, uno per ogni comando da eseguire.

vedi se riesci a risolvere cosi....

ciao

maffio
16-12-2008, 16:33
si così risolvi però per pulizia di codice e velocità preferivo inserire il tutto con un unico comando sql, anche perchè se lanci questa procedura direttamente su DB MySQL funziona, non ci sono errori di sintassi, il ; per dividere un comando dall'altro è corretto. chissà perchè su D2009 non funziona .

alka
13-01-2009, 10:25
L'architettura della libreria dbExpress è stata riscritta in buona parte.

L'uso "cumulativo" che fai del comando, a mio avviso, è errato, e se prima funzionava comunque, credo non sia formalmente corretto (magari funzionava perché, a causa di un difetto congenito del componente, non veniva impedito).

Separa i comandi da eseguire specificandoli di volta in volta e richiamando ExecSQL per ciascun comando.

Ciao! :ciauz:

Loading