Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more. :: Mappa del sito
Tutorials & Scripts, PHP, Linux and more.

Home :: Php :: Indice Php

Le novità di MySQL 5: I Cursors e le Transactions

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.


Indice Php
Apache (19)
CGI (11)
Java (12)
Jsp (16)
Linux (18)
Manuali (4)
Perl (12)
PostgreSQL (12)
Tomcat (10)
Unix (12)
Libri (172)
Forum


Photoshop CS2 alla massima potenza
Photoshop CS2 alla massima potenzaLa 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

Aspcenter.net
Mrwcorsi.it
Mrwebmaster.it
4 You Gratis.it
AG web solutions
Ceptive.it
Jacoz.net
Giochi Gratis
Pierotofy.it
Giornale Webmaster
Manuali
Morpheusweb.it
SEO Directory
Design multimedia
proBLOG
Visual designer
Forum per Webmaster




Pagina caricata in 0.0002 secondi. | Per informazioni | ©CG di Claudio Garau P.IVA 03219430927 RSS