SISTEMI INFORMATIVI E TELEMEDICINA 6. Query Prof. Mauro Giacomini
Sommario Operazioni possibili su un database Oggetto Command Query di lettura dei dati Query di scrittura dei dati Query parametriche Esempi di query
Tipi di operazioni Un applicazione client-server può fare: Operazioni di lettura Estrazione di dati puntuali (consultazione o preliminare alla modifica) Estrazione di dati aggregati Operazioni di scrittura Scrittura di dati puntuali (maschera) Scrittura di blocchi di dati (procedure apposite) Operazioni di modifica della struttura (ma non effettuate di solito da applicazioni client-server; fatte dal DBA con tool specifici)
Oggetto Command (1) Tutte le operazioni sul DB non sono effettuate direttamente sul DB dall applicazione Il client fa la richiesta, il DBMS la esegue Il DBMS Riceve la richiesta di accesso ai dati Controlla la sua correttezza formale Esegue la richiesta Restituisce esito e risultato Esito: se andata o no a buon fine Risultato: valori richiesti e/o riassunto (numero di record modificati/scritti)
Oggetto Command (2) Funzioni: Trasmissione di richiesta di accesso ai dati Riportare alla applicazione esito e risultato Tre oggetti di tipo command SqlCommand OleDBCommand OdbcCommand
Creazione di un comando Importazione del Namespace corrispondente Dichiarazione / Istanziazione esplicita Dim mycmd As New SqlCommand Dim myconn as New SqlConnection mycmd.connection = myconn Dichiarazione / Istanziazione implicita Dim mycmd As SqlCommand Dim myconn as New SqlConnection mycmd = myconn.createcommand
Stringa di Comando CommandText Contiene il testo del comando che si vuole eseguire Scritto nella sintassi del SQL del DBMS da usare Dim mycmd as New SqlCommand ( SELECT * FROM Impiegati, myconn) O Dim mycmd as SqlCommand mycmd = myconn.createcommand mycmd.commandtext = SELECT * FROM Impiegati
La connessione Proprietà Connection La connessione deve essere attiva quando si leggono/scrivono i dati Passa i contenuti a un oggetto DataReader
Tipo di comando Si possono passare: Stringhe in formato SQL Nomi di Stored Procedures Proprietà CommandType Contiene il tipo con cui interpretare il contenuto della CommandText Valori possibili: Text (default): comando SQL StoredProcedure: chiamata a una StoredProcedure immagazzinata nel DBMS TableDirect: nome di una tabella (solo per DBMS diversi da SQLServer)
Tempo di esecuzione CommandTimeout: tempo massimo di esecuzione del comando espresso in secondi Default: 30 secondi Passato il tempo massimo si genera un errore
Esecuzione del comando I metodi solo mandano la richiesta al DBMS Due gruppi ExecuteReader (mette i dati in un oggetto DataReader), ExecuteXMLReader (che restituisce i dati in fomto XML) ExecuteNonQuery (scrittura)
ExecuteReader Un parametro: CommandBehavior Valori possibili: CloseConnection: connessione chiusa alla fine dell uso dell oggetto DataReader SchemaOnly: restituisce solo la struttura dei campi letti KeyInfo: Si aggiunge ai record una colonna con la chiave primaria dei dati estratti SingleResult: restituisce un risultato singolo SingleRow: restituisce solo il primo record letto
ExecuteNonQuery In CommandText istruzione SQL diversa dalla lettura Possibili solo: scrittura, modifica, cancellazione, alterazione della struttura del DB Restituisce il numero di record interessati alla modifica Restituisce l esito del comando
Query parametriche Utili per i filtri Da mettere nel clausole WHERE o HAVING Fondamentali per il riutilizzo del software I parametri sono variabili precedute dal simbolo @ mysql = UPDATE Impiegati & _ SET posizione = @posizione, & _ città = @città, & _ zona = @zona, & _ WHERE cognome = @cognome & _ AND nome = @nome
Collection dei parametri (1) Proprietà Parameters popolata da oggetti di tipo Parameter le cui proprietà sono: ParameterName: nome del parametro DbType: tipo del parametro generico (possibili valori elencati in System.Data.DbType) OleDbType: tipo del parametro specifico per l OleDB (connesso internamente a DbType) Value: valore assegnato al parametro
Collection dei parametri (2) Direction: direzione del parametro (input, output, o parametro di ritorno di una stored procedure) IsNullable: indica se il parametro può accettare un valore nullo Size: grandezza massima in byte del parametro Precision: per parametri numerici, numero massimo di cifre intere Scale: per parametri numerici, numero massimo di cifre decimali
Collection dei parametri (3) Metodi propri di tutte le collezioni Add: aggiunge un item alla collezione (in questo caso un parametr) Item: consente di riferirsi a un particolare elemento della collcection (con il nome) Insert: inserisce un item Remove: rimuove un item Clear: svuota tutta la collection