Query. Tipi di operazione di accesso ai dati. Capitolo 6

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Query. Tipi di operazione di accesso ai dati. Capitolo 6"

Transcript

1 Capitolo 6 Query Nel precedente capitolo abbiamo visto come collegarsi a un database. Abbiamo parlato dell oggetto Connection, delle sue proprietà e dei suoi metodi. Abbiamo visto come usare tale oggetto per aprire una connessione a un database, ma soprattutto abbiamo visto come gestire la connessione, ovvero come aprirla, usarla e chiuderla. Si apre una connessione perché si intende compiere una o più operazioni sul database. In questo capitolo vederemo che tipo di operazioni si possono eseguire e come possono essere eseguite con l ausilio della tecnologia.net. In particolare parleremo dei seguenti argomenti: Quali tipi di operazione si possono eseguire su un database L oggetto Command di ADO.NET: proprietà e metodi Query di lettura dei dati Query di scrittura dei dati Query parametriche Possibilità di query Tipi di operazione di accesso ai dati Le operazioni di accesso ai dati eseguite da un applicazione client-server sono essenzialmente di due tipi: operazioni di lettura: si esegue un operazione di lettura dei dati per recuperare informazioni; le operazioni di lettura non modificano la struttura o il contenuto informativo di un database; operazioni di scrittura: si esegue un operazione di scrittura per modificare o cancellare dati o per inserirne dei nuovi; le operazioni di scrittura, quindi, modificano il contenuto informativo di un database. Vi è, in realtà, un terzo tipo di operazioni che possono essere eseguite su un database: sono le operazioni che modificano la struttura del database stesso.

2 114 Capitolo 6 Attraverso tali operazioni è possibile creare dei nuovi oggetti (ad esempio, tabelle, viste, indici e vincoli), modificare le caratteristiche degli oggetti già esistenti (ad esempio, modificare il formato di una colonna di una tabella o rinominare una colonna) oppure eliminare fisicamente alcuni oggetti del database (ad esempio, droppare una tabella o una vista). Queste operazioni rientrano nella categoria dei comandi DDL del linguaggio SQL di cui si è parlato in dettaglio nel Capitolo 3. Le operazioni DDL, però, data la portata strutturale dei loro interventi di modifica, non sono generalmente eseguite attraverso un applicazione client-server, ma sono demandate e riservate all esercizio esclusivo del DBA che le esegue attraverso l utilizzo dei tool specifici di governo e controllo del database. In questo capitolo, quindi, dedicheremo particolare attenzione alle operazioni tipicamente eseguite da un applicazione client-server, ovvero le operazioni di lettura e scrittura dei dati (eseguite attreverso comandi di tipo DML), pur non tralasciando qualche breve cenno alle operazioni di tipo strutturale (comandi DDL). La Figura 6.1 illustra le relazioni tra i tipi di operazione fin qui descritti. Le operazioni di lettura hanno essenzialmente lo scopo di estrarre da una fonte di dati un set di informazioni. L estrazione dei dati può essere fine a se stessa, ovvero soddisfare le sigenze meramente informative dell utilizzatore, ad esempio, l interrogazione di un database per ricavare una precisa informazione, oppure può essere propedeutica e preliminare a una successiva operazione di scrittura dei dati. In tal caso la fase di lettura è indispensabile per conoscere lo stato dell informazione che si intende modificare: ad esempio, l estrazione e visualizzazione dei dati anagrafici di un cliente o fornitore è propedeutica e preliminare all aggiornamento degli stessi. Possiamo ulteriormente suddividere le operazioni di lettura, distinguendo, nell ambito delle interrogazioni della fonte dati a fini esclusivamente informativi, le estrazioni di dati puntuali dalle estrazioni di dati di sintesi. Le prime restituisco- Applicazioni transazionali DBA DML DDL Lettura dati: estrazione Scrittura dati: modifica cancellazione inserimento Modifica struttura/ oggetti: modifica cancellazione creazione Figura 6.1 Relazioni tra tipi di operazione e modalità di gestione.

3 Query 115 no informazioni di dettaglio relative a un oggetto del database, come lo stato di avanzamento di un ordine o l indirizzo di un cliente; le seconde, invece, forniscono informazioni sintetiche relative a un fenomeno aziendale misurabile attraverso un estrazione di dati aggregati, come la distribuzione degli ordini nelle varie aree geografiche dei mercati trattati. In Figura 6.2 sono illustrati i diversi tipi di operazione di lettura. Una prima classificazione delle operazioni di scrittura è quella che tiene conto del tipo di intervento che eseguono sui dati. Possiamo, pertanto, distinguere tra operazioni di modifica, inserimento e cancellazione dei dati. Un ulteriore classificazione è quella che tiene conto del modo in cui è organizzata la logica dell operazione di scrittura. Questa cambia radicalmente a seconda del numero di oggetti interessati. L intervento sui dati, infatti, può riguardare un singolo record di una tabella, ad esempio l inserimento di un nuovo cliente nella relativa anagrafica, o un set coerente di dati, ad esempio tutte le fatture non ancora pagate intestate a un dato cliente. La differenza tra i due interventi non è solo di tipo numerico, ma attiene al modo di organizzare un operazione più o meno complessa di scrittura dei dati. Quando l operazione di scrittura non presenta particolari complessità logiche, è generalmente ottenuta con un istruzione SQL direttamente eseguita dall applicazione; negli altri casi l esecuzione dell istruzione SQL è demandata a una stored procedure. Tipo di lettura Scopo Estrazione di dati puntuali Estrazione di dati aggregati Consultazione puntuale Preliminare alla modifica Consultazione di sintesi (reporting) Figura 6.2 Tipi di operazioni di lettura dei dati. Oggetto Command di ADO.NET Un applicazione che fa riferimento ai dati contenuti in un database, in particolare un applicazione client-server, nel corso del suo funzionamento esegue un gran numero di operazioni di accesso alla fonte dei dati. Sono sia operazioni di lettura sia operazioni di scrittura. In entrambi i casi l operazione vera e propria non è eseguita dall applicazione richiedente, ma dal DBMS gestore dei dati. L applicazione, ovvero il lato client del sistema client-server, si limita a generare una richiesta di accesso ai dati che trasmette al sistema gestore dei dati stessi. È

4 116 Capitolo 6 quest ultimo che si occupa di eseguire l operazione e dare una risposta al richiedente. Il DBMS, in particolare, riceve la richiesta di accesso ai dati, ne controlla la correttezza formale, la esegue e restituisce all applicazione richiedente l esito e il risultato dell operazione stessa. Esito e risultato sono due concetti distinti. L esito dell operazione è un informazione sintetica che ci dice se l operazione è stata portata a termine positivamente o se si sono generati errori. Il risultato, invece, nel caso in cui l operazione abbia avuto esito positivo, può essere sia il contenuto informativo di cui l applicazione aveva chiesto l estrazione, sia un riepilogo sintetico dell operazione eseguita, ad esempio, il numero di record modificati. L oggetto Command ha la funzione di trasmettere al DBMS una richiesta di accesso ai dati e di riportare all applicazione richiedente l esito e il risultato dell operazione eseguita dal motore del database. Potremmo immaginarlo come un messaggero che veicola il comando dall applicazione al database, attende l esito e la conclusione delle operazioni e riporta al richiedente le informazioni richieste in caso di operazioni di lettura e, in ogni caso, l esito posisivo o negativo della transazione. Il funzionamento dell oggetto Command è schematizzato in Figura 6.3. Il framework.net ci mette a disposizione tre diversi oggetti di tipo Command: SqlCommand: è progettato per interfacciare e trasmettere comandi a database di tipo Microsoft SQL Server di versione pari o superiore alla 7.0; OleDbCommand: è progettato per interfacciare e trasmettere comandi ai fornitori di dati del tipo OLEDB Managed Providers, come database di tipo SQL Server 6.5 e precedenti, database Oracle e database Access; OdbcCommand: è progettato per interagire con una fonte dati ODBC. Applicazione richiedente DBMS testo del comando Command trasmette comando motore riceve comando dati riceve esito e risultato controlla esegue restituisce esito e risultato Figura 6.3 Funzionamento dell oggetto Command.

5 Creazione del comando Query 117 Per creare un oggetto Command è necessario aver prima importato il namespace corrispondente al tipo di oggetto che si intende istanziare. Abbiamo visto come si usa l istruzione Imports nel capitolo precedente, quando abbiamo spiegato come creare una connessione attraverso l oggetto Connection. Saltiamo, quindi, la fase di import del namespace e vediamo come istanziare e creare un oggetto Command. Anche per l oggetto Command, così come per l oggetto Connection, c è un modo esplicito e un modo implicito per creare un nuovo oggetto. La creazione esplicita passa attraverso l uso dell istruzione New: Dim mycommand As System.Data.SqlClient.SqlCommand mycommand = New SqlClient.SqlCommand() oppure, avendo specificato di importare il namespace System.Data.SqlClient, si può creare più semplicemente un nuovo oggetto Command nel seguente modo: Dim mycommand As SqlCommand mycommand = New SqlCommand() La creazione implicita, invece, passa attraverso l uso dell oggetto Connection. In particolare, bisogna invocarne il metodo CreateCommand: Dim myconnection As SqlClient.SqlConnection Dim mycommand As SqlClient.SqlCommand creazione esplicita della connessione myconnection = New SqlClient.SqlConnection() creazione implicita del comando con il metodo CreateCommand mycommand = Connection.CreateCommand() Proprietà dell oggetto Command: la stringa di comando La proprietà CommandText è una delle proprietà più importanti dell oggetto Command. Contiene il testo del comando che si intende far eseguire al database. Ovviamente il comando deve essere scritto con la corretta sintassi SQL del DBMS che dovrà eseguire le operazioni sul database. La proprietà può essere valorizzata al momento della creazione dell oggetto Command, specificando subito il testo del comando come parametro dell istruzione di creazione, o in un secondo momento assegnando alla proprietà una stringa contenente il comando SQL. Nell esempio che segue vediamo come valorizzare la proprietà in modo contestuale alla creazione dell oggetto: Dim mycommand As SqlCommand Dim mysql As String scrittura dell istruzione SQL

6 118 Capitolo 6 mysql = SELECT * FROM Impiegati creazione esplicita del comando e contestuale assegnazione della stringa SQL mycommand = New SqlCommand(mySQL) In alternativa, la proprietà può essere valorizzata in un secondo momento, come vediamo nell esempio che segue: Dim myconnection As SqlClient.SqlConnection Dim mycommand As SqlClient.SqlCommand Dim mysql As String scrittura dell istruzione SQL mysql = SELECT * FROM Impiegati creazione esplicita della connessione myconnection = New SqlClient.SqlConnection() creazione implicita del comando mycommand = myconnection.createcommand() passaggio della stringa SQL mycommand.commandtext = SELECT * FROM Impiegati Nel secondo esempio abbiamo istanziato l oggetto Command in modo implicito e poi ne abbiamo valorizzato la proprietà CommandText. Non avremmo potuto fare altrimenti perché la creazione implicta del comando non prevede il passaggio di alcun parametro. Nel caso di creazione esplicita del comando, invece, è possibile scegliere se passare subito la stringa SQL o se passarla in un secondo momento. Proprietà dell oggetto Command: la connessione Un applicazione può eseguire operazioni di accesso ai dati solo se è attiva una connessione presso la fonte dati di destinazione. La connessione, infatti, rappresenta il canale attraverso cui l applicazione interagisce con il database. L oggetto Command, invece, è lo strumento che consente di veicolare un istruzione SQL dall applicazione alla fonte dati e di riceverne il risulato. Questo, però, può funzionare, ovvero trasmettere la sua richiesta di esecuzione di un comando al DBMS di riferimento, solo se è attiva una connessione sul database. La dipendenza dell oggetto Command dalla connessione è resa evidente dalla presenza della poprietà Connection. La proprietà Connection deve essere valorizzata con un oggetto valido di tipo Connection. Per intenderci, la proprietà Connection è di tipo Connection. Per valorizzarla, quindi, è necessario creare una nuova connessione e assegnarla alla proprietà stessa. Vediamo un esempio: Private Function LeggiImpiegati() Dim myconnection As SqlClient.SqlConnection Dim mycommand As SqlClient.SqlCommand

7 Query 119 Dim mystrconn As String Dim mysql As String Dim mydatareader As SqlClient.SqlDataReader Try scrittura dell istruzione SQL mysql = SELECT cognome, nome FROM Impiegati creazione esplicita del comando mycommand = New SqlClient.SqlCommand() creazione esplicita del DataReader mydatareader = New SqlClient.SqlDataReader() creazione esplicita della connessione myconnection = New SqlClient.SqlConnection() composizione della stringa di connessione mystrconn = BuildConnectionString() assegnazione della stringa di connessione myconnection.connectionstring = mystrconn apertura della connessione myconnection.open() passaggio della connessione attiva all oggetto Command mycommand.connection = myconnection assegnazione del comando SQL mycommand.commandtext = mysql esecuzione del comando di lettura mydatareader = mycommand.executereader() With mydatareader legge una riga alla volta fino alla fine dei dati estratti Do While.Read = True Console.Write(.Item( Cognome ) &, ) Console.Write(.Item( Nome ) & Chr(13)) Loop End With chiusura della connessione myconnection.close() Catch thisexcept As Exception se si verifica un errore viene visualizzata l eccezione MessageBox.Show(thisExcept.Message, _ LeggiImpiegati() ) End Try End Function

8 120 Capitolo 6 La funzione LeggiImpiegati estrae i campi nome e cognome contenuti nella tabella Impiegati e ne visualizza il contenuto nella console di output. La funzione utilizza l oggetto mydatareader per ricevere dalla fonte dati le informazioni estratte. L oggetto appartiene al tipo DataReader, di cui parleremo nel dettaglio nel prossimo capitolo, per ora ci basti sapere che è un oggetto che consente di ricevere e gestire il risultato di una query di lettura. I dati contenuti nel Data- Reader possono essere solo letti, scorrendo il cursore in maniera sequenziale dal primo record estratto all ultimo. Analizziamo nel dettaglio il codice appena visto. Nella prima parte sono dichiarati gli oggetti e le variabili che saranno usate nella routine. Sono necessari un oggetto Connection, un oggetto Command e due variabili stringa, una per contenere i parameti di connessione, l altra per contenere l istruzione SQL: Dim myconnection As SqlClient.SqlConnection Dim mycommand As SqlClient.SqlCommand Dim mystrconn As String Dim mysql As String Sono valorizzate le variabili stringa contenenti i parametri di connessione e l istruzione SQL: scrittura dell istruzione SQL mysql = SELECT cognome, nome FROM Impiegati composizione della stringa di connessione mystrconn = BuildConnectionString() Sono istanziati gli oggetti mycommand, mydatareader e myconnection: creazione esplicita del comando mycommand = New SqlClient.SqlCommand() creazione esplicita del DataReader mydatareader = New SqlClient.SqlDataReader() creazione esplicita della connessione myconnection = New SqlClient.SqlConnection() È assegnata la stringa di connessione all oggetto myconnection ed è aperta la connessione: assegnazione della stringa di connessione myconnection.connectionstring = mystrconn apertura della connessione myconnection.open() A questo punto la connessione attiva può essere assegnata all oggetto mycommand: passaggio della connessione attiva all oggetto Command mycommand.connection = myconnection

9 Query 121 Il comando SQL è trasmesso alla fonte dati invocando il metodo ExecuteReader: esecuzione del comando di lettura mydatareader = mycommand.executereader() il risultato dell operazione di lettura è assegnato all oggetto mydatareader. Si noti che al momento dell esecuzione del comando la proprietà Connection dell oggetto mycommand è valorizzata con una connessione attiva. Se la connessione non fosse stata attiva, l esecuzione del comando ExecuteReader avrebbe generato un errore. Non è importante che la connessione sia attivata prima del passaggio all oggetto mycommand, l attivazione, infatti, può avvenire anche in un secondo momento, purché sia prima dell esecuzione del metodo ExecuteReader: esecuzione del metodo Open della proprietà Connection mycmd.connection.open() I dati estratti sono visualizzati nella console di output di Visual Studio: With myreader legge una riga alla volta fino alla fine dei dati estratti Do While.Read = True Console.Write(.Item( Cognome ) &, ) Console.Write(.Item( Nome ) & Chr(13)) Loop End With L istruzione Chr(13) è il CharCode del codice 13 (corrispondente al tasto Invio), serve per andare alla riga successiva dopo ogni record visualizzato. Infine, prima della conclusione della funzione, la connessione deve essere chiusa invocandone il metodo Close: chiusura della connessione myconnection.close() In alternativa, il metodo Close poteva essere invocato attraverso la proprietà Connection dell oggetto mycommand: chiusura della connessione mycommand.connection.close() Proprietà dell oggetto Command: il tipo di comando L oggetto Command è in grado di gestire sia istruzioni SQL sia chiamate a stored procedure. In entrambi i casi il comando deve essere scritto nella proprietà CommandText. L oggetto Command, però, ha bisogno di sapere come interpretare il testo di comando contenuto nella sua proprietà. L informazione sul tipo di comando è specificata nella proprietà CommandType.

10 122 Capitolo 6 La proprietà può assumere uno dei tre valori definiti per il CommandType. Di seguito sono elencati tali valori con la relativa descrizione: Tabella 6.1 Valore Text StoredProcedure TableDirect Descrizione È il valore assegnato di default alla proprietà; fa sì che l oggetto Command interpreti il testo del comando come un istruzione SQL. Indica che il testo del comando contiene la chiamata a una stored procedure. Il valore non è valido in caso di Managed Provider di tipo SQL Server; se il tipo di comando è TableDirect è necessario che la proprietà CommandText contenga il nome di una tabella; in tal caso il metodo ExecuteReader restituisce tutti i campi e tutti i record della tabella referenziata. Nella funzione LeggiImpiegati dell esempio precedente abbiamo usato un comando di tipo SQL, ma non abbiamo valorizzato la proprietà CommandType perché il suo valore era per default già impostato su Text. Vediamo come avremmo dovuto scrivere il codice nel caso in cui non fosse previsto il valore di default: definizione del tipo di comando per istruzioni SQL mycommand.commandtype = CommandType.Text Se, invece di un istruzione SQL, avessimo voluto eseguire una chiamata a una stored procedure avremmo dovuto definire la proprietà CommandType in questo modo: definizione del tipo di comando per chiamate a stored procedure mycommand.commandtype = CommandType.StoredProcedure Possiamo fare un esempio di chiamata di stored procedure, provando a usare la stored procedure Clienti e fornitori per città del database Northwind, che abbiamo fatto migrare alla versione SQL Server nel precedente capitolo. La procedura è molto semplice: esegue due operazioni di SELECT, una sulla tabella Clienti e una sulla tabella Fornitori, e riunisce i dati estratti in un unico set di dati con un istruzione UNION. È possibile leggere il codice del-la stored procedure attraverso il tool Server Explorer fornito da Visual Studio.NET: basta navigare all interno della struttura ad albero raffigurante i vari tipi di oggetti del database Northwind e aprire il dettaglio della voce Stored Procedures; se siete fortunati troverete la procedura Clienti e fornitori per città; per visualizzarne il codice è sufficiente selezionare la voce Modifica Stored Procedure (o Edit Stored Procedure se avete la versione inglese di Visual Studio); dovreste riuscire a vedere il codice riportato nella Figura 6.4.

11 Query 123 Figura 6.4 Stored procedure Clienti e fornitori per città. Riprendiamo, quindi, la precedente funzione LeggiImpiegati e modifichiamola per leggere la stored procedure Clienti e fornitori per città; le cambiamo il nome e la chiamiamo LeggiClientiFornitori: Private Function LeggiClientiFornitori() Dim mycommand As SqlClient.SqlCommand Dim myconnection As SqlClient.SqlConnection Dim mydatareader As SqlClient.SqlDataReader Dim mystrconn As String Dim mysql As String Try il testo del comando contiene la chiamata alla stored procedure mysql = [Clienti e fornitori per città] creazione esplicita del comando e assegnazione della stringa SQL mycommand = New SqlClient.SqlCommand(mySQL) creazione implicita del comando mycommand= myconnection.createcommand() creazione esplicita della connessione myconnection = New SqlClient.SqlConnection() mystrconn = BuildConnectionString() myconnection.connectionstring = mystrconn myconnection.open() passaggio della connessione attiva all oggetto Command mycommand.connection = myconnection mycommand.connection.open() definizione del tipo di comando mycommand.commandtype = CommandType.StoredProcedure

12 124 Capitolo 6 esegue il comando di lettura mydatareader = mycommand.executereader() With mydatareader legge una riga alla volta fino alla fine dei dati estratti Do While.Read = True Console.Write(.Item( Città ) &, ) Console.Write(.Item( NomeSocietà ) &, ) Console.Write(.Item( Contatto ) &, ) Console.Write(.Item( Relazione ) & Chr(13)) Loop End With invoca il metodo Close per chiudere la connessione myconnection.close() Catch thisexcept As Exception se il tentativo di connessione fallisce viene visualizzata l eccezione MessageBox.Show(thisExcept.Message, _ LeggiClientiFornitori() ) End Try End Function Commentiamo solo le parti di codice nuove e tralasciamo quelle note. Innanzitutto, è cambiato il testo del comando, non contiene più un istruzione SQL, ma la chiamata alla stored procedure: il testo del comando contiene la chiamata alla stored procedure mysql = [Clienti e fornitori per città] Il tipo di comando è impostato sul valore StoredProcedure: definizione del tipo di comando mycommand.commandtype = CommandType.StoredProcedure Nella console di output sono visualizzati i campi pubblicati dalla stored procedure: With mydatareader legge una riga alla volta fino alla fine dei dati estratti Do While.Read = True Console.Write(.Item( Città ) &, ) Console.Write(.Item( NomeSocietà ) &, ) Console.Write(.Item( Contatto ) &, ) Console.Write(.Item( Relazione ) & Chr(13)) Loop End With

13 Proprietà dell oggetto Command: il tempo di esecuzione Query 125 Può essere settato un tempo massimo, espresso in secondi, di esecuzione del comando. Il valore è definito valorizzando la proprietà CommandTimeout. La proprietà ha per default il valore di trenta secondi. Se l esecuzione del comando supera il tempo massimo definito dalla proprietà CommandTimeout l oggetto genera un eccezione di tipo SqlException. Negli esempi precedenti avremmo potuto definire un tempo massimo di esecuzione inferiore al valore di default: definizione del tempo massimo di esecuzione mycommand.commandtimeout = 10 Potete provare a eseguire il codice della funzione LeggiImpiegati dopo aver aggiunto la riga di codice appena vista prima dell esecuzione del comando di lettura. I metodi dell oggetto Command: l esecuzione del comando I metodi più importanti dell oggetto Command sono quelli che eseguono il comando specificato nella proprietà CommandText. Sappiamo che in realtà il comando vero e proprio è eseguito dal DBMS gestore della fonte dati, per cui l invocazione del metodo di esecuzione ha solo la funzione di trasmettere al database la richiesta di esecuzione dell operazione sui dati. Possiamo classificare i metodi di esecuzione del comando in due gruppi: metodi che eseguono comandi di lettura e metodi che eseguono operazioni di scrittura. Al primo tipo appartengono i metodi ExecuteReader ed ExecuteXmlReader. I due metodi si assomigliano molto, la differenza principale sta nel fatto che il metodo ExecuteXmlReader restituisce i dati sotto forma di un oggetto XML. Per il significato e le caratteristiche degli oggetti XML vi rimandiamo all appendice D, per il momento ci basti sapere che il contenuto informativo non cambia, cambia solo il modo in cui i dati sono rappresentati e trasmessi. Per quanto riguarda l esecuzione di comandi di scrittura, invece, abbiamo solo il metodo ExecuteNonQuery. Negli esempi precedenti abbiamo usato metodi di esecuzione dei comandi sia di scrittura sia di lettura. Nel capitolo 5, infatti, abbiamo inserito dei record nella tabella Impiegati, mentre negli esempi proposti in questo capitolo abbiamo visto come leggere tali dati. Abbiamo usato, infatti, sia il metodo ExecuteReader sia il metodo ExecuteNonQuery. Vediamo ora nel dettaglio le caratteristiche di entrambi. Il metodo ExecuteReader trasmette alla fonte dati di riferimento il comando di lettura contenuto nella proprietà CommandText e trasferisce i dati estratti in un oggetto di tipo DataReader. È necessario che la proprietà CommandType sia settata con il valore Text. L esecuzione del comando consente di specificare un

14 126 Capitolo 6 parametro che specifica il comportamento (CommandBehavior) dell oggetto DataReader generato dal metodo ExecuteReader. Di seguito elenchiamo i possibili valori del parametro CommandBehavior: Tabella 6.2 Valore CloseConnection SchemaOnly KeyInfo SingleResult SingleRow Descrizione Fa sì che la connessione associata al comando, ovvero l oggetto Connection associato alla proprietà Connection, sia chiusa non appena terminata la lettura del DataReader. Fa sì che il Data Provider non restituisca alcun record di dati ma solo la struttura dei campi letti. Fa sì che a ogni lettura di dati sia sempre aggiunta una colonna con la primary key dei dati estratti Il Data Provider restituisce un risultato singolo. Il Data Provider restituisce solo i dati del primo record letto. Proviamo qualche CommandBehavior. Facciamo una prova, ad esempio, con il valore SingleRow. Riprendiamo la funzione LeggiImpiegati e invochiamo il metodo ExecuteReader passando il valore SingleRow come parametro CommandBehavior: esecuzione del comando di lettura mydatareader = _ mycommand.executereader(commandbehavior.singlerow) Proviamo a eseguire il codice. Nella console di output di Visual Studio saranno visualizzati i dati di un solo impiegato. Il metodo ExecuteNonQuery deve essere usato, invece, nei casi in cui il comando contenuto nella proprietà CommandText non contenga un istruzione SQL di lettura. In alternativa la proprietà può contenere un istruzione di scrittura di dati o un istruzione di intervento sulla struttura del database (istruzione SQL di tipo DDL). In entrambi i casi la fonte dati non restituisce alcun set di dati, ma un informazione sintetica sull esito dell operazione. Nel caso di istruzioni di scrittura dei dati (INSERT, UPDATE, DELETE) il metodo restituisce l informazione sul numero di record interessati dall operazione; nel caso di istruzioni di tipo DDL, invece, il metodo restituisce l informazione sull esito positivo o negativo dell istruzione. Cominciamo con un esempio di istruzione SQL di tipo DML, proviamo cioè a inserire dei record nella tabella Impiegati. Private Function InserisciImpiegato() Dim mycommand As SqlClient.SqlCommand Dim myconnection As SqlClient.SqlConnection Dim mystrconn As String Dim mysql As String

15 Query 127 Dim nrorecord As Integer Try il testo del comando contiene un istruzione SQL di inserimento record mysql = INSERT INTO Impiegati (cognome,nome) & _ VALUES( Padovano, Antonio ); & _ INSERT INTO Impiegati (cognome,nome) & _ VALUES( Bellè, Paolo ) creazione esplicita del comando e assegnazione della stringa SQL mycommand = New SqlClient.SqlCommand(mySQL) creazione implicita del comando mycommand= myconnection.createcommand() creazione esplicita della connessione myconnection = New SqlClient.SqlConnection() mystrconn = BuildConnectionString() myconnection.connectionstring = mystrconn myconnection.open() passaggio della connessione attiva mycommand.connection = myconnection definizione del tipo di comando mycommand.commandtype = CommandType.Text esegue il comando di scrittura e l esito è assegnato alla variabile nrorecord nrorecord = mycommand.executenonquery() Console.Write( Nro record inseriti: & nrorecord) invoca il metodo Close per chiudere la connessione myconnection.close() Catch thisexcept As Exception se il tentativo di connessione fallisce viene visualizzata l eccezione MessageBox.Show(thisExcept.Message, _ InserisciImpiegato() ) End Try End Function La funzione InserisciImpiegato è sostanzialmente uguale alle altre già viste in questo capitolo, commentiamo, quindi, solo le parti nuove. La proprietà CommandText contiene un istruzione SQL che inserisce due record nella tabella Impiegati: il testo del comando contiene un istruzione SQL di inserimento record mysql = INSERT INTO Impiegati (cognome,nome) & _ VALUES( Padovano, Antonio ); & _

16 128 Capitolo 6 INSERT INTO Impiegati (cognome,nome) & _ VALUES( Bellè, Paolo ) Il metodo di esecuzione del comando è specifico per le istruzioni di scrittura e il risultato dell operazione è assegnato alla variabile numerica nrorecord: esegue il comando di scrittura e l esito è assegnato alla variabile nrorecord nrorecord = mycommand.executenonquery() Il numero di record inseriti, ovvero il valore della variabile nrorecord, è visualizzato nella console di output: Console.Write( Nro record inseriti: & nrorecord) Possiamo provare ora a eseguire un istruzione SQL di tipo DDL. Scriviamo una funzione che crei la tabella Nipoti con le seguenticaratteristiche : Tabella 6.3 Campo Cognome Nome Città Tipo (datatype) varchar 30 caratteri varchar 30 caratteri varchar 30 caratteri Di seguito, il codice della funzione CreaTabella: Private Function CreaTabella() Dim mycommand As SqlClient.SqlCommand Dim myconnection As SqlClient.SqlConnection Dim Esito As Integer Dim mystrconn As String Dim mysql As String Try il testo del comando contiene un istruzione SQL di tipo DDL mysql = CREATE TABLE Nipoti & _ (cognome VARCHAR(30), & _ nome VARCHAR(30), & _ città VARCHAR(30)) creazione esplicita del comando e assegnazione della stringa SQL mycommand = New SqlClient.SqlCommand(mySQL) creazione implicita del comando mycommand= myconnection.createcommand() creazione esplicita della connessione myconnection = New SqlClient.SqlConnection()

17 Query 129 mystrconn = BuildConnectionString2() myconnection.connectionstring = mystrconn myconnection.open() passaggio della connessione attiva mycommand.connection = myconnection mycommand.connection.open() definizione del tipo di comando mycommand.commandtype = CommandType.Text esegue il comando di creazione della tabella e l esito è assegnato alla variabile Esito Esito = mycommand.executenonquery() Console.Write( Esito DDL: & Esito) invoca il metodo Close per chiudere la connessione myconnection.close() Catch thisexcept As Exception se il tentativo di connessione fallisce viene visualizzata l eccezione MessageBox.Show(thisExcept.Message, _ CreaTabella() ) End Try End Function Anche stavolta tralasciamo il codice che già conosciamo e analizziamo solo le parti nuove. Cominciamo dall istruzione SQL: il testo del comando contiene un istruzione SQL di tipo DDL mysql = CREATE TABLE Nipoti & _ (cognome VARCHAR(30), & _ nome VARCHAR(30), & _ città VARCHAR(30)) L istruzione crea la tabella Nipoti composta dai campi cognome, nome e città; tutti e tre i campi sono del tipo VARCHAR e hanno una lunghezza di 30 caratteri. Un campo dichiarato VARCHAR(30), a differenza di uno definito CHAR(30), se occupato da una stringa di lunghezza inferiore a 30 caratteri occupa soltanto il numero di byte effettivi della stringa. È consigliabile utilizzare il datatype VARCHAR, quindi, nei casi in cui si prevede una grande variabilità nella popolazione di un campo. Il metodo di esecuzione del comando è anche stavolta quello specifico per le istruzioni di scrittura. Il risultato dell operazione di creazione della tabella è assegnato alla variabile numerica Esito: esegue il comando di creazione della tabella e l esito è assegnato alla variabile Esito Esito = mycommand.executenonquery()

18 130 Capitolo 6 L esito della creazione della tabella, ovvero il valore della variabile Esito, è visualizzato nella console di output: Console.Write( Esito DDL: & Esito) A conferma del buon esito dell istruzione DDL il valore del codice di ritorno deve essere 1, per cui nella console di output si dovrebbe leggere il seguente messaggio: Esito DDL: -1 Se ancora non vi fidate e volete avere la certezza di aver creato la tabella, potete controllare usando il Server Explorer: troverete la tabella Nipoti con i campi cognome, nome e città all interno della sezione Tables del database Northwind. Ricordiamo, comunque, che è alquanto improbabile che in un applicazione client-server interfacciata da utenti operativi si eseguano operazioni di tipo DDL. Tipicamente queste sono demandate al DBA, che le esegue usando i tool specifici rilasciati dal DBMS su cui opera e solo per interventi strutturali sul database. Query parametriche Negli esempi di accesso ai dati che abbiamo visto finora non abbiamo mai avuto bisogno di specificare l insieme dei dati su cui intendevamo eseguire le nostre operazioni. Abbiamo inserito dei record nella tabella Impiegati, ne abbiamo letto tutti i record, abbiamo creato la tabella Nipoti. In particolare, negli esempi di operazioni di lettura non abbiamo avuto bisogno di filtrare i dati da estrarre, così come non abbiamo avuto bisogno di specificare su quali dati intendevamo intervenire negli esempi di operazioni di scrittura. La realtà lavorativa è molto più varia. È molto frequente, infatti, che sia necessario leggere o modificare solo alcuni record di una tabella, ponendo, cioè, dei filtri alle query che si intendono eseguire verso il database e definendo dei criteri in grado di delimitare il set di dati oggetto dell operazione. Quest esigenza si soddisfa generalmente apponendo delle clausole WHERE o HAVING alle istruzioni SQL che si eseguono su un database. Nel capitolo 3 abbiamo visto vari esempi di utilizzo di tali clausole, per cui in questo capitolo ne faremo uso senza soffermarci troppo sul loro significato e sulle loro differenze. La costruzione delle clausole WHERE o HAVING prevede la concatenazione di tre elementi: il nome del campo da filtrare, un operatore logico di confronto e un valore di confronto, che può essere anche il nome di un altro campo. Non solo, quando abbiamo eseguito delle operazioni di inserimento di record in una tabella, abbiamo scritto all interno della query quelli che dovevano essere i valori che avrebbero dovuto assumere alcuni campi dei nuovi record. Abbiamo, cioè, composto la stringa di comando in modo che fosse specifica per l inserimento di quel determinato record. Se volessimo, ora, riciclare quel codice per inserire un record diverso, dovremmo riscrivere la stringa di SQL specificando valori differenti.

19 Query 131 Facciamo subito alcuni esempi. Riprendiamo la funzione InserisciImpiegato e modifichiamo la stringa di comando per inserire un nuovo impiegato: istruzione SQL per l inserimento di un nuovo record mysql = INSERT INTO Impiegati (cognome,nome) & _ VALUES( Menozzi, Alessandro ) Eseguiamo il codice. Il risultato è l inserimento nella tabella Impiegati di un nuovo record con i campi cognome e nome valorizzati. Notiamo che, per eseguire un operazione pressoché identica alla precedente, dobbiamo modificare parte del codice. Facciamo un altro esempio. La tabella Impiegati possiede svariati campi che nella precedente operazione di inserimento non abbiamo valorizzato. Ci proponiamo, quindi, in una successiva operazione di aggiornamento, di valorizzarne alcuni. Creiamo, pertanto, la funzione AggiornaImpiegati che ci consente di aggiornare i campi del record appena inserito. Copiamo il codice della funzione InserisciImpiegato e sostituiamo la stringa di comando con la seguente: il testo del comando contiene un istruzione SQL di modifica di un record mysql = UPDATE Impiegati & _ SET posizione = collega, & _ città = Zibello, & _ zona = Pieveottoville & _ WHERE cognome = Menozzi & _ AND nome = Alessandro Sostituiamo inoltre la scrittura del messaggio nella console con il seguente: visualizzazione del nro di record aggiornati Console.Write( Nro record aggiornati: & nrorecord) Eseguiamo il codice. Vedremo nella console di output il seguente messggio: Nro record aggiornati: 1 Il comando SQL è l unico elemento di novità della funzione cha abbiamo appena creato. Analizziamone in dettaglio la struttura. Nella prima parte troviamo l istruzione UPDATE seguita dai campi oggetto della modifica, ognuno associato al valore che si vuole che il campo assuma. Nella seconda parte sono specificate due clausole WHERE legate dall operatore logico AND, una relativa al campo cognome, l altra relativa al campo nome. Il comando, quindi, chiede al DBMS di riferimento di modificare tutti i record della tabella Impiegati in cui il campo cognome contiene il valore Menozzi e il campo nome il valore Alessandro, scrivendo il valore collega nel campo posizione, il valore Zibello nel campo città e il valore Pieveottoville nel campo zona. Le funzioni InserisciImpiegato e AggiornaImpiegati che abbiamo appena visto sono due pessimi esempi di scrittura di codice. Sono, infatti, costruite su misura per l inserimento e la modifica di un record con specifici valori. Se volessimo utilizzare la stessa struttura per trattare record con valori differenti,

20 132 Capitolo 6 dovremmo riscriverle modificando la stringa SQL. Ovviamente, avendo gli esempi una valenza prettamente didattica, ci sentiamo in un certo senso perdonati, ma per fare ammenda ci proponiamo di suggerire delle modalità più dinamiche per strutturare il codice. Ad esempio, potremmo rendere più dinamica l interazione tra codice e database separando la parte di codice dedicata all accesso alla fonte dati dalla parte di logica applicativa, che determina il contenuto della stringa di comando e decide l accesso ai dati. Modifichiamo, pertanto, la precedente funzione Aggiorna- Impiegati e creiamo la funzione EseguiWrite specifica per l esecuzione della query di scrittura: Private Function EseguiWrite( _ ByVal psql As String) As Integer Dim mycommand As SqlClient.SqlCommand Dim myconnection As SqlClient.SqlConnection Dim nrorecord As Integer Dim mystrconn As String Try creazione esplicita del comando e assegnazione della stringa SQL mycommand = New SqlClient.SqlCommand(pSQL) creazione esplicita della connessione myconnection = New SqlClient.SqlConnection() mystrconn = BuildConnectionString() myconnection.connectionstring = mystrconn myconnection.open() passaggio della connessione attiva all oggetto Command mycommand.connection = myconnection definizione del tipo di comando mycommand.commandtype = CommandType.Text esecuzione del comando di scrittura EseguiWrite = mycommand.executenonquery() invoca il metodo Close per chiudere la connessione myconnection.close() Catch thisexcept As Exception se il tentativo di connessione fallisce viene visualizzata l eccezione MessageBox.Show(thisExcept.Message, _ EseguiWrite() ) End Try End Function

21 Query 133 Private Sub AggiornaImpiegati() Dim nrorecord As Integer Dim mysql As String Try il testo del comando contiene un istruzione SQL di modifica di un record mysql = UPDATE Impiegati & _ SET posizione = collega, & _ città = Zibello, & _ zona = Pieveottoville & _ WHERE cognome = Menozzi & _ AND nome = Alessandro chiamata della funzione che esegue l operazione di scrittura nrorecord = EseguiWrite(mySQL) MessageBox.Show( Nro Record aggiornati: & _ nrorecord, AggiornaImpiegati() ) Catch thisexcept As Exception se il tentativo di connessione fallisce viene visualizzata l eccezione MessageBox.Show(thisExcept.Message, _ AggiornaImpiegati() ) End Try End Sub La funzione EseguiWrite ha come parametro di input la stringa psql destinata a contenere il comando SQL. La funzione contiene tutti i comandi specifici dell accesso ai dati. Il comando di esecuzione della query è eseguito invocando il metodo ExecuteNonQuery e l esito del comando, ovvero il numero di record aggiornati, è asssegnato alla funzione stessa. esecuzione del comando di scrittura EseguiWrite = mycommand.executenonquery() Nella funzione AggiornaImpiegati, invece, è scomparso ogni riferimento al codice specifico dell accesso ai dati. Rimane solo la scrittura della stringa SQL nella variabile mysql. L esecuzione del comando è demandata alla funzione EseguiWrite chiamata trasferendo la variabile mysql come parametro di input. L esito dell operazione è comunicato alla procedura chiamante che provvede a registrare il valore nella variabile nrorecord. chiamata della funzione che esegue l operazione di scrittura nrorecord = EseguiWrite(mySQL)

22 134 Capitolo 6 Per ultimo, la funzione AggiornaImpiegati segnala il numero di record aggiornati mediante un messaggio che visualizza la variabile nrorecord: MessageBox.Show( Nro Record aggiornati: & _ nrorecord, AggiornaImpiegati() ) La funzione EseguiWrite può essere chiamata da qualsiasi procedura dell applicazione purché sia passato come parametro di input un comando SQL sintatticamente corretto. L onere della definizione del comando è comunque demandato alla procedura chiamante, che deve comporre in modo dinamico una stringa di comando da passare alla funzione che eseguirà l accesso ai dati. È senz altro un passo avanti, ma si può fare di meglio. Un altro modo per rendere più dinamica la scrittura di codice di accesso ai dati è l utilizzo di query parametriche. In una query parametrica, al posto del valore dei campi o dei filtri, è indicato il nome di un parametro. Facciamo subito un esempio. L istruzione SQL di inserimento di un record vista prima nella funzione AggiornaImpiegati diventa: istruzione SQL parametrica mysql = UPDATE Impiegati & _ SET posizione & _ città & _ zona & _ WHERE cognome & _ AND nome Come si vede, al posto delle stringhe contenenti i valori dei campi posizione, città e zona che si vogliono aggiornare e al posto del valore dei filtri sui campi cognome e nome, si trovano dei nomi di variabili preceduti dal Le variabili in questione sono i parametri della query. Prima di fare ulteriori esempi di scrittura di query parametriche, però, è necessario spiegare il significato e il funzionamento dei parametri all interno dell oggetto Command. Proprietà dell oggetto Command: la collection dei parametri L oggetto Command possiede la proprietà Parameters. È una proprietà di tipo collection e può essere popolata con oggetti di tipo Parameter. L oggetto Parameter, quindi, è il componente elementare della collection dei parametri e delle query parametriche. Vediamo quali sono le sue proprietà: Tabella 6.4 Proprietà ParameterName DbType Descrizione È il nome del parametro. È il datatype generico del parametro; può essere scelto tra uno di quelli specificati dall elenco del framework.net System.Data.DbType.

23 Query 135 Proprietà OleDbType Value Direction IsNullable Size Precision Scale Descrizione È il datatype specifico del data provider.net; le proprietà DbType e OleDbType sono correlate internamente, per cui se si cambia il valore della prima si aggiorna automaticamente il valore della seconda. È il valore che si assegna al parametro. Indica se il parametro è di input, di output o se è un parametro di ritorno di una stored procedure. Indica se il parametro può accettare valore nullo. Indica la grandezza massima in byte del parametro. In caso di parametri numerici, può indicare il numero massimo di cifre intere. In caso di parametri numerici, può indicare il numero massimo di cifre decimali. La proprietà Parameters possiede dei metodi e delle proprietà comuni a tutte le collection di Visual Basic. In particolare, possiede il metodo Add, attraverso cui è possibile aggiungere un nuovo Item (nel nostro caso di tipo Parameter); possiede ovviamente la poprietà Item, che consente di referenziare un particolare elemento della collection; possiede i metodi Insert e Remove, attraverso i quali è possibile inserire o rimuovere un Item preciso dalla collection, e il metodo Clear, che consente di svuotare rapidamente l intera collection. Facciamo alcuni esempi. Un oggetto parametro si istanzia in questo modo: Dim myparameter As SqlClient.SqlParameter creazione esplicita myparameter = New SqlClient.SqlParameter() oppure, avendo importato il namespace, più semplicemente: Dim myparameter As SqlParameter creazione esplicita myparameter = New SqlParameter() Si può istanziare un oggetto Parameter anche in modo implicito, usando il metodo CreateParameter dell oggetto Command: Dim mycommand As SqlCommand Dim myparameter As SqlParameter mycommand = New SqlCommand() creazione implicita myparameter = mycommand.createparameter() L aggiunta di un parametro alla collection dei parametri, ovvero alla proprietà Parameters, è molto semplice; basta invocare il metodo Add passando l oggetto Parameter: Dim mycommand As SqlCommand Dim myparameter As SqlParameter mycommand = New SqlCommand()

24 136 Capitolo 6 myparameter = New SqlParameter() aggiunge un parametro in coda all elenco mycommand.parameters.add(myparameter) Si può aggiungere un parametro alla collection specificando l esatta posizione in cui inserirlo usando il metodo Insert. Nell esempio che segue si inserisce un parametro nella posizione 0 della collection, ovvero in cima all elenco: Dim mycommand As SqlCommand Dim myparameter As SqlParameter mycommand = New SqlCommand() myparameter = New SqlParameter() aggiunge un parametro in cima all elenco mycommand.parameters.insert(0, myparameter) Per rimuovere il parametro di cui si conosce l esatta posizione si può usare il metodo RemoveAt: Dim mycommand As SqlCommand Dim myparameter As SqlParameter mycommand = New SqlCommand() myparameter = New SqlParameter() aggiunge un parametro in cima all elenco mycommand.parameters.insert(0, myparameter) rimuove il primo parametro della lista mycommand.parameters.removeat(0) Per svuotare la collection dei parametri è sufficiente invocare il metodo Clear: Dim mycommand As SqlCommand mycommand = New SqlCommand() svuota l intera collection dei parametri mycommand.parameters.clear() Ora che abbiamo le idee un po più chiare sulle proprietà dell oggetto Parameter e sul funzionamento della collection Parameters possiamo vedere come sfruttarne le potenzialità per gestire in modo efficiente l accesso ai dati. Possiamo, infatti, strutturare il codice separando la parte di definizione della query dalla parte specifica di connessione ed esecuzione del comando. Per quanto riguarda la parte di definizione della query, possiamo evitare di riscrivere il testo del comando SQL, in quanto, grazie alle query parametriche, possiamo limitarci a passare all oggetto Command l elenco dei parametri richiesti dalla query specificando il valore di ognuno di essi. Private Function AggiornaImpiegatiParametrica() Dim nrorecord As Integer Dim mysql As String Dim mycommand As SqlClient.SqlCommand Try

25 Query 137 il testo del comando contiene un istruzione SQL di inserimento record mysql = UPDATE Impiegati & _ SET posizione & _ città & _ zona & _ WHERE cognome & _ AND nome mycommand = New SqlClient.SqlCommand() invoca la routine che aggiunge un parametro alla collection dei parametri dell oggetto mycommand & _ SqlDbType.VarChar, collega ) & _ SqlDbType.VarChar, Zibello ) & _ SqlDbType.VarChar, Pieveottoville ) & _ SqlDbType.VarChar, Menozzi ) & _ SqlDbType.VarChar, Alessandro ) invocazione della funzione che esegue la query nrorecord = EseguiWriteParametrica(mySQL, mycommand) MessageBox.Show( Nro Record aggiornati: & _ nrorecord, AggiornaImpiegatiParametrica() ) Catch thisexcept As Exception se il tentativo di connessione fallisce viene visualizzata l eccezione MessageBox.Show(thisExcept.Message, _ AggiornaImpiegatiParametrica() ) End Try End Function Private Sub AggiungiParametro( _ ByRef pcommand As SqlClient.SqlCommand, _ ByVal pnomeparametro As String, _ ByVal pdbtype As SqlDbType, _ ByVal pvalore As String) Dim myparameter As SqlClient.SqlParameter Try creazione implicita del parametro myparameter = pcommand.createparameter() valorizzazione delle proprietà del parametro myparameter.parametername = pnomeparametro

26 138 Capitolo 6 myparameter.sqldbtype = pdbtype myparameter.value = pvalore aggiunge il parametro alla collection pcommand.parameters.add(myparameter) Catch thisexcept As Exception se il tentativo di connessione fallisce viene visualizzata l eccezione MessageBox.Show(thisExcept.Message, _ AggiungiParametro() ) End Try End Sub Private Function EseguiWriteParametrica( _ ByVal psql As String, _ ByVal pcommand As SqlClient.SqlCommand) As Integer Dim myconnection As SqlClient.SqlConnection Dim nrorecord As Integer Dim mystrconn As String Try creazione esplicita della connessione myconnection = New SqlClient.SqlConnection() mystrconn = BuildConnectionString() myconnection.connectionstring = mystrconn myconnection.open() passaggio della connessione attiva all oggetto Command pcommand.connection = myconnection definizione del tipo di comando pcommand.commandtype = CommandType.Text assegnazione della stringa comando pcommand.commandtext = psql esegue il comando di scrittura EseguiWriteParametrica = pcommand.executenonquery() invoca il metodo Close per chiudere la connessione myconnection.close() Catch thisexcept As Exception se il tentativo di connessione fallisce viene visualizzata l eccezione MessageBox.Show(thisExcept.Message, _ EseguiWriteParametrica() ) End Try End Function

SISTEMI INFORMATIVI E TELEMEDICINA. 6. Query Prof. Mauro Giacomini

SISTEMI INFORMATIVI E TELEMEDICINA. 6. Query Prof. Mauro Giacomini 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

Dettagli

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7 Il trattamento dei dati database: il linguaggio SQL seconda parte Prof. Valle D.ssa Folgieri Lez9 15.11.06 Trattamento dati. Database: il

Dettagli

Dispensa di database Access

Dispensa di database Access Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di

Dettagli

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Si consiglia di creare il data base, inserire i dati nelle tabelle, provare

Dettagli

COLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo

COLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo Release 5.20 Manuale Operativo COLLI Gestione dei Colli di Spedizione La funzione Gestione Colli consente di generare i colli di spedizione in cui imballare gli articoli presenti negli Ordini Clienti;

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

2003.06.16 Il sistema C.R.M. / E.R.M.

2003.06.16 Il sistema C.R.M. / E.R.M. 2003.06.16 Il sistema C.R.M. / E.R.M. Customer / Enterprise : Resource Management of Informations I-SKIPPER è un sistema di CONOSCENZE che raccoglie ed integra INFORMAZIONI COMMERCIALI, dati su Clienti,

Dettagli

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,

Dettagli

ISTRUZIONI PER LA GESTIONE BUDGET

ISTRUZIONI PER LA GESTIONE BUDGET ISTRUZIONI PER LA GESTIONE BUDGET 1) OPERAZIONI PRELIMINARI PER LA GESTIONE BUDGET...1 2) INSERIMENTO E GESTIONE BUDGET PER LA PREVISIONE...4 3) STAMPA DIFFERENZE CAPITOLI/BUDGET.10 4) ANNULLAMENTO BUDGET

Dettagli

Come modificare la propria Home Page e gli elementi correlati

Come modificare la propria Home Page e gli elementi correlati Come modificare la propria Home Page e gli elementi correlati Versione del documento: 3.0 Ultimo aggiornamento: 2006-09-15 Riferimento: webmaster (webmaster.economia@unimi.it) La modifica delle informazioni

Dettagli

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report Facoltà di Lingue e Letterature Straniere Le QUERY 2 Che cos è una Query? Una Query rappresenta uno strumento per interrogare un database.

Dettagli

ELENCO CLIENTI FORNITORI Patch1

ELENCO CLIENTI FORNITORI Patch1 ELENCO CLIENTI FORNITORI Patch1 Il pacchetto P15_200ElencoCF_Patch1.exe contiene una serie di aggiornamenti alla procedura di generazione del file contenente l. Download: 1) Assicurarsi di avere una versione

Dettagli

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS CONTENUTI: CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS Creazione database vuoto Creazione tabella Inserimento dati A) Creazione di un database vuoto Avviamo il programma Microsoft Access. Dal menu

Dettagli

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE 1/6 MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE Per prima cosa si ringrazia per aver scelto ImmobiPhone e per aver dato fiducia al suo autore. Il presente documento istruisce l'utilizzatore sull'uso del programma

Dettagli

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso 2.0 Gli archivi All interno della sezione archivi sono inserite le anagrafiche. In pratica si stratta di tutti quei dati che ricorreranno costantemente all interno dei documenti. 2.1 Inserire gli archivi

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Data Base. Master Bio Info Reti e Basi di Dati Lezione 6 Data Base 1 Sommario I concetti fondamentali. Database Relazionale.. Query e SQL MySql, Creazione di un db in MySQL con PHPmyAdmin Creazione database e delle Tabelle Query Inserimento Ricerca Modifica

Dettagli

E-mail: infobusiness@zucchetti.it. Gestione Filtri. InfoBusiness 2.8 Gestione Filtri Pag. 1/ 11

E-mail: infobusiness@zucchetti.it. Gestione Filtri. InfoBusiness 2.8 Gestione Filtri Pag. 1/ 11 Gestione Filtri InfoBusiness 2.8 Gestione Filtri Pag. 1/ 11 INDICE Indice...2 1. GESTIONE DEI FILTRI...3 1.1. Filtri fissi...3 1.2. Filtro parametrico...5 1.3. Funzione di ricerca...6 2. CONTESTI IN CUI

Dettagli

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi Vogliamo creare una struttura per permettere di memorizzari i voti della classe in tutte le materie Per fare questo untilizziamo tre tabelle Alunni,materie,voti Alunni Materie Voti Creo un record per ogni

Dettagli

Introduzione. Alberto Fortunato alberto.fortunato@gmail.com. www.albertofortunato.com Pag. 1 di 137

Introduzione. Alberto Fortunato alberto.fortunato@gmail.com. www.albertofortunato.com Pag. 1 di 137 Introduzione Il software Gestione magazzino è stato realizzato con l intenzione di fornire uno strumento di apprendimento per chi intendesse cominciare ad utilizzare Access 2010 applicando le tecniche

Dettagli

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER Caratteristiche generali del linguaggio SQL Il linguaggio SQL è il linguaggio usato per la gestione dei database relazionali, cioè dei database creati con un DBMS di tipo relazionale. Esso nacque nella

Dettagli

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. (Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System

Dettagli

Raggruppamenti Conti Movimenti

Raggruppamenti Conti Movimenti ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

Manuale d uso Software di parcellazione per commercialisti Ver. 1.0.3 [05/01/2015]

Manuale d uso Software di parcellazione per commercialisti Ver. 1.0.3 [05/01/2015] Manuale d uso Software di parcellazione per commercialisti Ver. 1.0.3 [05/01/2015] Realizzato e distribuito da LeggeraSoft Sommario Premessa... 2 Fase di Login... 2 Menù principale... 2 Anagrafica clienti...

Dettagli

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni

Dettagli

Le query di raggruppamento

Le query di raggruppamento Le query di raggruppamento Le "Query di raggruppamento" sono delle Query di selezione che fanno uso delle "Funzioni di aggregazione" come la Somma, il Conteggio, il Massimo, il Minimo o la Media, per visualizzare

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

MANUALE PARCELLA FACILE PLUS INDICE

MANUALE PARCELLA FACILE PLUS INDICE MANUALE PARCELLA FACILE PLUS INDICE Gestione Archivi 2 Configurazioni iniziali 3 Anagrafiche 4 Creazione prestazioni e distinta base 7 Documenti 9 Agenda lavori 12 Statistiche 13 GESTIONE ARCHIVI Nella

Dettagli

5.2.1 RELAZIONI TRA TABELLE 1. 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9

5.2.1 RELAZIONI TRA TABELLE 1. 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9 5.2.1 RELAZIONI TRA TABELLE 1 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9 Il grado di un verso di un associazione indica quanti record della tabella di partenza si associano ad un

Dettagli

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati Corso di Access Modulo L2A (Access) 1.1 Concetti di base 1 Prerequisiti Utilizzo elementare del computer Concetti fondamentali di basi di dati 2 1 Introduzione Un ambiente DBMS è un applicazione che consente

Dettagli

Database 1 biblioteca universitaria. Testo del quesito

Database 1 biblioteca universitaria. Testo del quesito Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole

Dettagli

Capitolo 13. Interrogare una base di dati

Capitolo 13. Interrogare una base di dati Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per

Dettagli

5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record

5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record 5.3 TABELLE In un sistema di database relazionali le tabelle rappresentano la struttura di partenza, che resta poi fondamentale per tutte le fasi del lavoro di creazione e di gestione del database. 5.3.1

Dettagli

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software Volume GESTFLORA Gestione aziende agricole e floricole Guidaall uso del software GESTIONE AZIENDE AGRICOLE E FLORICOLE Guida all uso del software GestFlora Ver. 2.00 Inter-Ware Srl Viadegli Innocenti,

Dettagli

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti. SH.MedicalStudio Presentazione SH.MedicalStudio è un software per la gestione degli studi medici. Consente di gestire un archivio Pazienti, con tutti i documenti necessari ad avere un quadro clinico completo

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

MAGAZZINO FISCALE (agg. alla rel. 3.4.1)

MAGAZZINO FISCALE (agg. alla rel. 3.4.1) MAGAZZINO FISCALE (agg. alla rel. 3.4.1) Per ottenere valori corretti nell inventario al LIFO o FIFO è necessario andare in Magazzino Fiscale ed elaborare i dati dell anno che ci serve valorizzare. Bisogna

Dettagli

Procedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM

Procedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM Procedure memorizzate SQL-2003/PSM Procedure memorizzate nel database Programmazione general-purpose Leggere sezione 8.2 di Garcia-Molina et al. Lucidi derivati da quelli di Jeffrey D. Ullman 1 Una estensione

Dettagli

Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio

Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio Pillola operativa Integrazione Generazione Dettagli Contabili INFORMAZIONI

Dettagli

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Manuale Amministratore Legalmail Enterprise Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Pagina 2 di 16 Manuale Amministratore Legalmail Enterprise Introduzione a Legalmail Enterprise...3

Dettagli

Gestione Rapporti (Calcolo Aree)

Gestione Rapporti (Calcolo Aree) Gestione Rapporti (Calcolo Aree) L interfaccia dello strumento generale «Gestione Rapporti»...3 Accedere all interfaccia (toolbar)...3 Comandi associati alle icone della toolbar...4 La finestra di dialogo

Dettagli

L amministratore di dominio

L amministratore di dominio L amministratore di dominio Netbuilder consente ai suoi clienti di gestire autonomamente le caselle del proprio dominio nel rispetto dei vincoli contrattuali. Ciò è reso possibile dall esistenza di un

Dettagli

MDAC. Attualmente la versione disponibile di MDAC è la 2.8 ma faremo riferimento alla 2.6. ADO Active Data Objects ADO OLE DB ODBC

MDAC. Attualmente la versione disponibile di MDAC è la 2.8 ma faremo riferimento alla 2.6. ADO Active Data Objects ADO OLE DB ODBC MDAC MDAC è l acronimo di Microsoft Data Access Component e fa parte della tecnologia Microsoft denominata Universal Data Access (UDA). Mette a disposizione una serie di componenti per l accesso a svariate

Dettagli

User Tools: DataBase Manager

User Tools: DataBase Manager Spazio di lavoro Per usare T-SQL Assistant selezionare il link Simple Query e spostare a piacere la piccola finestra dove un menu a tendina mostra i diversi comandi SQL selezionabili, il pulsante Preview

Dettagli

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione SQL DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE SQL è più di un semplice linguaggio di interrogazione! Linguaggio di definizione dati (Data-definition language, DDL):! Crea/distrugge/modifica relazioni

Dettagli

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

I.N.A.I.L. Certificati Medici via Internet. Manuale utente

I.N.A.I.L. Certificati Medici via Internet. Manuale utente I.N.A.I.L. Certificati Medici via Internet Manuale utente CERTIFICATI MEDICI... 1 VIA INTERNET... 1 MANUALE UTENTE... 1 COME ACCEDERE AI CERTIFICATI MEDICI ON-LINE... 3 SITO INAIL... 3 PUNTO CLIENTE...

Dettagli

MOCA. Modulo Candidatura. http://www.federscacchi.it/moca. moca@federscacchi.it. [Manuale versione 1.0 marzo 2013]

MOCA. Modulo Candidatura. http://www.federscacchi.it/moca. moca@federscacchi.it. [Manuale versione 1.0 marzo 2013] MOCA Modulo Candidatura http://www.federscacchi.it/moca moca@federscacchi.it [Manuale versione 1.0 marzo 2013] 1/12 MOCA in breve MOCA è una funzionalità del sito web della FSI che permette di inserire

Dettagli

Fornitori On Line Manuale Utente. Fornitori On Line Manuale Utente

Fornitori On Line Manuale Utente. Fornitori On Line Manuale Utente Fornitori On Line Manuale Utente Paragrafo-Pagina di Pagine 1-1 di 7 Versione 2 del 05/08/2014 SOMMARIO 1 A Chi è destinato... 1-3 2 Pre requisiti... 2-3 3 Obiettivi... 3-3 4 Durata della formazione...

Dettagli

Le query. Lezione 6 a cura di Maria Novella Mosciatti

Le query. Lezione 6 a cura di Maria Novella Mosciatti Lezione 6 a cura di Maria Novella Mosciatti Le query Le query sono oggetti del DB che consentono di visualizzare, modificare e analizzare i dati in modi diversi. Si possono utilizzare query come origine

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

Istituto Centrale per il Catalogo Unico delle Biblioteche Italiane. e per le Informazioni bibliografiche. Manuali utente per SBN WEB. Versione 1.

Istituto Centrale per il Catalogo Unico delle Biblioteche Italiane. e per le Informazioni bibliografiche. Manuali utente per SBN WEB. Versione 1. Istituto Centrale per il Catalogo Unico delle Biblioteche Italiane e per le Informazioni bibliografiche Manuali utente per SBN WEB Versione 1.0 Produzione editoriale Vers. 1.0 27/09/2013 Pagina 1 Sommario

Dettagli

Gestione Risorse Umane Web

Gestione Risorse Umane Web La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...

Dettagli

GERARCHIE RICORSIVE - SQL SERVER 2008

GERARCHIE RICORSIVE - SQL SERVER 2008 GERARCHIE RICORSIVE - SQL SERVER 2008 DISPENSE http://dbgroup.unimo.it/sia/gerarchiericorsive/ L obiettivo è quello di realizzare la tabella di navigazione tramite una query ricorsiva utilizzando SQL SERVER

Dettagli

COMUNIC@CTION INVIO SMS

COMUNIC@CTION INVIO SMS S I G e s t S.r.l S e d e l e g a l e : V i a d e l F o r n o 3 19125 L a S p e z i a T e l e f o n o 0187/284510/15 - F a x 0187/525519 P a r t i t a I V A 01223450113 COMUNIC@CTION INVIO SMS GUIDA ALL

Dettagli

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare

Dettagli

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa. La finestra di Excel è molto complessa e al primo posto avvio potrebbe disorientare l utente. Analizziamone i componenti dall alto verso il basso. La prima barra è la barra del titolo, dove troviamo indicato

Dettagli

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

ARCHIVI E DATABASE (prof. Ivaldi Giuliano) ARCHIVI E DATABASE (prof. Ivaldi Giuliano) Archivio: è un insieme di registrazioni (o records) ciascuna delle quali è costituita da un insieme prefissato di informazioni elementari dette attributi (o campi).

Dettagli

Corso sul linguaggio SQL

Corso sul linguaggio SQL Corso sul linguaggio SQL Modulo L2B (SQL) 2.2 Comandi sulle tabelle 1 Prerequisiti Introduzione ai DB Tabelle, relazioni e attributi Chiave primaria Chiave esterna Vincoli di integrità 2 1 Introduzione

Dettagli

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

LA GESTIONE DELLE VISITE CLIENTI VIA WEB LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici

Dettagli

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012 Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono

Dettagli

Concetti fondamentali dei database database Cos'è un database Principali database

Concetti fondamentali dei database database Cos'è un database Principali database Concetti fondamentali dei database Nella vita di tutti i giorni si ha la necessità di gestire e manipolare dati. Le operazioni possono essere molteplici: ricerca, aggregazione con altri e riorganizzazione

Dettagli

Manuale d'uso. Manuale d'uso... 1. Primo utilizzo... 2. Generale... 2. Gestione conti... 3. Indici di fatturazione... 3. Aliquote...

Manuale d'uso. Manuale d'uso... 1. Primo utilizzo... 2. Generale... 2. Gestione conti... 3. Indici di fatturazione... 3. Aliquote... Manuale d'uso Sommario Manuale d'uso... 1 Primo utilizzo... 2 Generale... 2 Gestione conti... 3 Indici di fatturazione... 3 Aliquote... 4 Categorie di prodotti... 5 Prodotti... 5 Clienti... 6 Fornitori...

Dettagli

Lezione V. Aula Multimediale - sabato 29/03/2008

Lezione V. Aula Multimediale - sabato 29/03/2008 Lezione V Aula Multimediale - sabato 29/03/2008 LAB utilizzo di MS Access Definire gli archivi utilizzando le regole di derivazione e descrivere le caratteristiche di ciascun archivio ASSOCIAZIONE (1:1)

Dettagli

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,

Dettagli

Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002

Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002 Tricks & Tips [Access] - Michele de Nittis - Tutorial - ActiveX - Controllo Tree View Versione: 1 Data Versione: venerdì 30 agosto 2002 1 SOMMARIO PREMESSA...3 INSERIMENTO DEL CONTROLLO...3 AGGIUNTA DELLE

Dettagli

EXCEL FUNZIONI PRINCIPALI

EXCEL FUNZIONI PRINCIPALI EXCEL FUNZIONI PRINCIPALI Funzione SE() Sintassi: SE(VERIFICA, VALORE SE VERO, VALORE SE FALSO): verifica un valore e ritorna una risposta in base al risultato vero/falso Esempio: =SE(A2=15; "OK"; "NO")

Dettagli

Uso di base delle funzioni in Microsoft Excel

Uso di base delle funzioni in Microsoft Excel Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce

Dettagli

Guida all uso di Java Diagrammi ER

Guida all uso di Java Diagrammi ER Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con

Dettagli

Capitolo 2. Operazione di limite

Capitolo 2. Operazione di limite Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A

Dettagli

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1 PROGRAMMA GESTIONE TURNI MANUALE UTENTE INDICE 1 PREMESSA 3 2 COMANDI COMUNI 3 3 SEDI 3 4 FESTIVITÀ 4 5 PERIODI TURNI 4 6 COD. TURNI 6 7 TURNI SPORTIVI 9 8 COD. EQUIPAGGI 9 9 DISPONIBILITÀ 10 10 INDISPONIBILITÀ

Dettagli

A T I C _W E B G U I D A AL L A N A V I G A Z I O N E S U L S I T O D E L G R U P P O. Rev. 2.1

A T I C _W E B G U I D A AL L A N A V I G A Z I O N E S U L S I T O D E L G R U P P O. Rev. 2.1 G U I D A AL L A N A V I G A Z I O N E S U L S I T O D E L G R U P P O A T I C _W E B Rev. 2.1 1 1. ISCRIZIONE Le modalità di iscrizione sono due: Iscrizione volontaria Iscrizione su invito del Moderatore

Dettagli

Introduzione ai database relazionali

Introduzione ai database relazionali Introduzione ai database relazionali Tabelle Un database (DB) è costituito da un insieme di file che memorizzano dati opportunamente organizzati Nei database relazionale tale organizzazione è costituita

Dettagli

Informatica per le discipline umanistiche 2 lezione 10

Informatica per le discipline umanistiche 2 lezione 10 Informatica per le discipline umanistiche 2 lezione 10 Parte III: il computer come strumento per l interazione e la comunicazione Si è parlato di identità Parte III: il computer come strumento per l interazione

Dettagli

Convertitori numerici in Excel

Convertitori numerici in Excel ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel

Dettagli

SERVIZIO DI MESSAGGISTICA ALL UTENTE. Manuale per l operatore

SERVIZIO DI MESSAGGISTICA ALL UTENTE. Manuale per l operatore SERVIZIO DI MESSAGGISTICA ALL UTENTE Manuale per l operatore rev. 02 giugno 2010 SOMMARIO COME USARE IL PROGRAMMA PER LA MESSAGGISTICA...3 COSA BISOGNA FARE PRIMA DI INIZIARE A UTILIZZARE IL PROGRAMMA...3

Dettagli

Architettura MVC-2: i JavaBeans

Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Vendite e Acquisti On Line Manuale Utente

Vendite e Acquisti On Line Manuale Utente Vendite e Acquisti On Line Manuale Utente Paragrafo-Pagina di Pagine 1-1 di 8 Versione 145 del 09/04/2014 SOMMARIO 1 A Chi è destinato... 1-3 2 Pre requisiti... 2-3 3 Obiettivi... 3-3 4 Durata della formazione...

Dettagli

Comprendere ADO.NET. La guida definitiva per comprendere a fondo ADO

Comprendere ADO.NET. La guida definitiva per comprendere a fondo ADO 060-063 Database 3-03-2005 16:23 Pagina 62 DATABASE La guida definitiva per comprendere a fondo ADO Accesso ai DB con Visual Basic.Net 2003 L ultimo articolo che ci aiuterà ad interagire con i database,

Dettagli

Guida alla registrazione on-line di un DataLogger

Guida alla registrazione on-line di un DataLogger NovaProject s.r.l. Guida alla registrazione on-line di un DataLogger Revisione 3.0 3/08/2010 Partita IVA / Codice Fiscale: 03034090542 pag. 1 di 17 Contenuti Il presente documento è una guida all accesso

Dettagli

CHIUSURE di MAGAZZINO di FINE ANNO

CHIUSURE di MAGAZZINO di FINE ANNO CHIUSURE di MAGAZZINO di FINE ANNO Operazioni da svolgere per il riporto delle giacenze di fine esercizio Il documento che segue ha lo scopo di illustrare le operazioni che devono essere eseguite per:

Dettagli

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi ControlloCosti Cubi OLAP I cubi OLAP Un Cubo (OLAP, acronimo di On-Line Analytical Processing) è una struttura per la memorizzazione e la gestione dei dati che permette di eseguire analisi in tempi rapidi,

Dettagli

Olga Scotti. Basi di Informatica. Excel

Olga Scotti. Basi di Informatica. Excel Basi di Informatica Excel Tabelle pivot Le tabelle pivot sono strumenti analitici e di reporting per creare tabelle riassuntive, riorganizzare dati tramite trascinamento, filtrare e raggruppare i dati,

Dettagli

File, Modifica, Visualizza, Strumenti, Messaggio

File, Modifica, Visualizza, Strumenti, Messaggio Guida installare account in Outlook Express Introduzione Questa guida riguarda di sicuro uno dei programmi maggiormente usati oggi: il client di posta elettronica. Tutti, ormai, siamo abituati a ricevere

Dettagli

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass 0_Iniziare con GRASS Avvio di Grass e creazione della cartella del Database di GRASS Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

Dettagli

Word processor funzione Stampa Unione

Word processor funzione Stampa Unione Word processor funzione Stampa Unione La funzione Stampa unione permette di collegare un documento che deve essere inviato ad una serie di indirizzi ad un file che contenga i nominativi dei destinatari.

Dettagli

INDICE. Accesso al Portale Pag. 2. Nuovo preventivo - Ricerca articoli. Pag. 4. Nuovo preventivo Ordine. Pag. 6. Modificare il preventivo. Pag.

INDICE. Accesso al Portale Pag. 2. Nuovo preventivo - Ricerca articoli. Pag. 4. Nuovo preventivo Ordine. Pag. 6. Modificare il preventivo. Pag. Gentile Cliente, benvenuto nel Portale on-line dell Elettrica. Attraverso il nostro Portale potrà: consultare la disponibilità dei prodotti nei nostri magazzini, fare ordini, consultare i suoi prezzi personalizzati,

Dettagli

Esercizio data base "Biblioteca"

Esercizio data base Biblioteca Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni

Dettagli

19. LA PROGRAMMAZIONE LATO SERVER

19. LA PROGRAMMAZIONE LATO SERVER 19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici

Dettagli

Volumi di riferimento

Volumi di riferimento Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di

Dettagli

1. Le macro in Access 2000/2003

1. Le macro in Access 2000/2003 LIBRERIA WEB 1. Le macro in Access 2000/2003 Per creare una macro, si deve aprire l elenco delle macro dalla finestra principale del database: facendo clic su Nuovo, si presenta la griglia che permette

Dettagli

2104 volume III Programmazione

2104 volume III Programmazione 2103 SQLite Capitolo 77 77.1 Utilizzo generale................................. 2104 77.1.1 Utilizzo di sqlite3».......................... 2104 77.1.2 Copie di sicurezza............................ 2106

Dettagli

Portale tirocini. Manuale utente Per la gestione del Progetto Formativo

Portale tirocini. Manuale utente Per la gestione del Progetto Formativo GESTIONE PROGETTO FORMATIVO Pag. 1 di 38 Portale tirocini Manuale utente Per la gestione del Progetto Formativo GESTIONE PROGETTO FORMATIVO Pag. 2 di 38 INDICE 1. INTRODUZIONE... 3 2. ACCESSO AL SISTEMA...

Dettagli

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database Uso delle basi di dati Uso delle Basi di Dati Il modulo richiede che il candidato comprenda il concetto di base dati (database) e dimostri di possedere competenza nel suo utilizzo. Cosa è un database,

Dettagli

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio Documento Tecnico Light CRM Descrizione delle funzionalità del servizio Prosa S.r.l. - www.prosa.com Versione documento: 1, del 11 Luglio 2006. Redatto da: Michela Michielan, michielan@prosa.com Revisionato

Dettagli

La tecnologia ASP.NET e i database

La tecnologia ASP.NET e i database Introduzione alle pagine dinamiche Con il linguaggio HTML si possono creare delle pagine Web statiche. Se invece volessimo creare delle pagine Web dinamiche, pagine il cui codice html viene generato al

Dettagli

filrbox Guida all uso dell interfaccia WEB Pag. 1 di 44

filrbox Guida all uso dell interfaccia WEB Pag. 1 di 44 filrbox Guida all uso dell interfaccia WEB Pag. 1 di 44 Sommario Introduzione... 4 Caratteristiche del filrbox... 5 La barra principale del filrbox... 7 Elenco degli utenti... 8 Il profilo... 9 Le novità...

Dettagli

In questo manuale sono indicate le procedure per utilizzare correttamente la gestione delle offerte dei fornitori.

In questo manuale sono indicate le procedure per utilizzare correttamente la gestione delle offerte dei fornitori. Release 5.20 Manuale Operativo ORDINI PLUS Gestione delle richieste di acquisto In questo manuale sono indicate le procedure per utilizzare correttamente la gestione delle offerte dei fornitori. La gestione

Dettagli