|
Inserito il: 05-12-2005   |
I Cursors rappresentano dei puntatori diretti ai recordset di
determinate interrogazioni; attraverso di essi possiamo accedere ai recordset e assegnare i valori dei campi a
variabili. Un esempio pratico chiarirà il concetto appena espresso:CREATE PROCEDURE get_cursor (IN dato_1
INT, OUT dato_2 CHAR(5)) BEGIN DECLARE var_1 CHAR(5); DECLARE cursor_1 CURSOR FOR SELECT var FROM
tabella WHERE id = dato_1;
OPEN cursor_1; FETCH cursor_1 INTO var_1; CLOSE cursor_1;
SET dato_2 = var_1; END; Innanzitutto, viene dichiarata la procedura ("CREATE PROCEDURE get_cursor(IN
dato_1 INT, OUT dato_2 CHAR(5))") con la quale stabiliamo due valori (uno di input e un secondo di output) e ne
attribuiamo il tipo di dato, essi verranno coinvolti dall'azione del Cursor.
In secondo luogo dichiariamo
una variabile ("var_1") e ne definiamo il tipo di dato; nel nostro caso sarà una stringa.
Quindi,
introduciamo il Cursor ("cursor_1") a cui dobbiamo associare l'azione per cui viene dichiarato
("CURSOR FOR SELECT var FROM tabella WHERE id = dato_1;").
Il Cursor viene aperto ("OPEN
cursor_1;") e svolge la sua azione sulla variabile ("FETCH cursor_1 INTO var_1;"), dopo di chè viene
chiuso e la variabile viene settata con il valore di output.
Le Transactions sono disponibili soltato per
tabelle InnoDB, una Transaction
consente di eseguire query multiple solo nel caso in cui tutte hanno esito positivo, diversamente gli errori saranno
gestiti in modo da non compromettere la correttezza dei dati.
Proponiamo di seguito un breve esempio riguardante
l'azione svolta da una Transaction:START TRANSACTION; SELECT @dato_1:=SUM(prezzo) FROM tabella_1 WHERE
id=1; UPDATE tabella_2 SET prezzo=@dato_1 WHERE id=1; COMMIT; Nell'esempio viene inizializzata la
Transaction ("START TRANSACTION;"); la prima query proposta è una SELECT da una prima tabella
operata su un determinato dato ("SELECT @dato_1:=SUM(prezzo) FROM tabella_1 WHERE id=1;").
La seconda
query impone un aggiornamento su una seconda tabella utilizzando il dato precedentemente estratto ("UPDATE tabella_2 SET
prezzo=@dato_1 WHERE id=1;").
Infine viene rilasciata la Transaction tramite la clausola
"COMMIT".
Attenzione: questo articolo è stato concesso in esclusiva
per la pubblicazione a Mrwebmaster.it; ne è vietata la
riproduzione, anche parziale, senza l'esplicito consenso dell'autore e della redazione di Mrwebmaster.it. |
|
|
Photoshop CS2 alla massima potenza
La nuova versione di Photoshop prosegue i cambiamenti iniziati con il salto da Photoshop 7 a Photoshop CS con miglioramenti... Maggiori dettagli |
|
Ottenere l'elenco dei file allocati in tabella Come anticipato nel precedente articolo, una volta eseguito l'upload dei binari in tabella, sarà utile creare un elenco completo dei... Leggi l'articolo
|
|
Aiutiamo l'Abruzzo - Terremoto del 6 Aprile 2009
- Invia anche tu un SMS vuoto al numero 48580 al costo di 1 euro |
|
|