PDA

View Full Version : [FireBird] Stored procedures


das
16-11-2008, 16:59
Vorrei fare in modo che un applicazione client possa leggere a che punto è di un loop una stored procedure. Ad esempio:

WHILE (i <=5000) DO
BEGIN
mio codice....

i =i +1;
END

Come può l'applicazione client conoscere quanto vale i mentre il loop è in esecuzione ?

Grazie

cdimauro
17-11-2008, 08:30
Purtroppo ho poco tempo. Ti butto due soluzioni al volo.

1) Fai in modo che diventare la stored procedure ritorni un valore intero che è esattamente la variabile i, e quando aggiorni il suo valore utilizzi l'istruzione SUSPEND per ritornare il valore al client che l'ha invocata.

2) Utilizzi gli eventi (con POST_EVENT, se non ricordo male) per segnalare a TUTTI i client (che sono registrati per quel tipo di evento) che è stato raggiunto un certo valore.

Nel primo caso usi la stored procedure come fosse una tabella da cui leggi i valori. Nel secondo caso invece hai una funzione di callback da definire nella tua applicazione per intercettare l'evento.

das
17-11-2008, 13:04
Purtroppo ho poco tempo. Ti butto due soluzioni al volo.

1) Fai in modo che diventare la stored procedure ritorni un valore intero che è esattamente la variabile i, e quando aggiorni il suo valore utilizzi l'istruzione SUSPEND per ritornare il valore al client che l'ha invocata.

2) Utilizzi gli eventi (con POST_EVENT, se non ricordo male) per segnalare a TUTTI i client (che sono registrati per quel tipo di evento) che è stato raggiunto un certo valore.

Nel primo caso usi la stored procedure come fosse una tabella da cui leggi i valori. Nel secondo caso invece hai una funzione di callback da definire nella tua applicazione per intercettare l'evento.

Grazie, userò la 2a soluzione.

Ciao