ADO's Object Model - Command |
Home Page | Comments | Articles | Faq | Documents | Search | Archive | Tales from the Machine Room | Contribute | Set language to:en it | Login/Register
L'oggetto Command consente l'invio di comandi al database, i comandi possono essere query, ma non sono limitati a questo. Possono essere preparazione di query ed associazioni di parametri con stringhe di query. Il linguaggio attuale di comando che e' supportato e' strettamente dipendente dal driver in uso, la maggioranza dei database relazionali che sono supportati utilizzano una qualche variante dello standard SQL92. L'oggetto Command puo' sia accedere ad una nuova connessione o utilizzare una connessione esistente per eseguire le proprie operazioni, dipende da cosa viene specificato nella proprieta' ActiveConnection. Se tale proprieta' e' impostata su una connesione esistente, tale connessione verra' utilizzata, se tale proprieta' viene impostata su una stringa di connessione, verra' usata tale stringa per attivare una nuova connessione. L'esecuzione di stringhe di query puo' generare uno o piu' RecordSet come risposta, oppure puo' non ritornare nessun RecordSet. Una query puo' essere specificata impostando la proprieta' CommandText. Una query in genere puo' essere una istruzione SQL standard di manipolazione del database o il richiamo di una Stored Procedure. Il tipo di query viene specificato impostando la proprieta' CommandType con una delle apposite costanti. Quando il comando e' un comando SQL, deve essere utilizzata adCmdText. Se viene usata adCmdStoredProc, l'oggetto Command esegue la query mediante la sequenza ODBC {call procedure=name}.
Se si specifica adCmdTable, la query si suppone che sia il
nome di una tabella, in questo caso la query viene convertita in
SELECT * FROM Specificando adCmdUnknown, l'oggetto Command cerchera' di stabilire il tipo di query inviato, questo potrebbe portare ad un degrado delle prestazioni. E' possibile utilizzare la proprieta' Prepared, per effettuare la "preparazione" delle query prima della vera e propria esecuzione. In questo modo prima della esecuzione viene preparato il Piano di Query, questo migliora sensibilmente le prestazini della query se la stessa deve essere eseguita piu' volte. La proprieta' Prepared diviene utile anche quando si deve eseguire ripetutamente una query con parametri, modificando i valori dei parametri ogni volta. L'oggetto Parameter puo' essere creato attraverso il metodo CreateParameter. Questo esempio esegue una semplice SELECT che ritorna un recordset: Dim Cmd As New ADODB.Command Dim rs As New ADODB.Recordset ' Use a connection string or a Connection object. Cmd.ActiveConnection = "DSN=pubs;UID=sa" Cmd.CommandText = "select * from titles" Cmd.CommandTimeout = 15 Cmd.CommandType = adCmdText Set rs = Cmd.Execute() rs.Close Questo esempio esegue una stored procedure che non ritorna un RecordSet. Dim Cmd As New ADODB.Command ' Use a connection string or a Connection object. Cmd.ActiveConnection = "DSN=pubs;UID=sa" Cmd.CommandText = "myADOProc" Cmd.CommandTimeout = 15 Cmd.CommandType = adCmdStoredProc Cmd.Execute Il nome della Stored Procedure e' "myAdoProc" ed e' inserito nella proprieta' CommandText.
|
Davide Bianchi, works as Unix/Linux administrator for an hosting provider in The Netherlands.
Do you want to contribute?
read how.
This site is made by me with blood, sweat and gunpowder, if you want to republish or redistribute any part of it, please drop me (or the author of the article if is not me) a mail.
This site was composed with VIM, now is composed with VIM and the (in)famous CMS FdT.
This site isn't optimized for vision with any specific browser, nor
it requires special fonts or resolution.
You're free to see it as you wish.