Skip to content

3. Appendici

3.1. Creazione di un progetto web con Visual Studio.net su XP familiare

Visual Studio.net consente di realizzare diversi tipi di progetti:

Image

Per creare un progetto di applicazione web, di norma si sceglie il tipo [Application Web ASP.NET]. Questo tipo di progetto richiede la presenza di un server web IIS locale o remoto. Se si lavora su un computer Windows XP, tale server non è presente e non è possibile installarlo. Non è quindi possibile creare un progetto di tipo [Application Web ASP.NET].

È possibile aggirare l’ostacolo accettando alcuni piccoli inconvenienti. È sufficiente:

  • utilizzare il server web Cassini al posto del server IIS. È disponibile gratuitamente sul sito di Microsoft.
  • utilizzare un progetto [Bibliothèque de classes] al posto del progetto [Application Web ASP.NET]

Creiamo un progetto semplice che illustri come procedere.

  • Creare un progetto [Bibliothèque de classes]
  • eliminare [Class1.vb]

Image

  • aggiungere un nuovo elemento al progetto, di tipo [Fichier texte] e denominarlo [demo.aspx]:
  • il file [demo.aspx] viene riconosciuto come pagina web e gli viene associato un editor di pagine. Quest'ultimo presenta due pannelli:
  • [design] per costruire graficamente la pagina
  • [HTML] per accedere al codice HTML della pagina

Image

  • selezionare [Affichage/Code] per visualizzare la parte di codice VB della pagina. Non succede nulla. Non si ha accesso al codice VB della pagina.
  • Andare nel pannello [HTML] e inserire il codice che collegherà la pagina [demo.aspx] al codice [demo.aspx.vb]:

Image

  • richiedere il codice di controllo associato alla pagina tramite [Affichage code - F7]. Si ottiene il file [demo.aspx.vb]:

Image

  • la pagina [demo.aspx] viene ora riconosciuta come una pagina web [.aspx] con un codice [.aspx.vb] associato.
  • Torniamo al pannello [Design] di [demo.aspx] e disegniamo la pagina seguente:

Image

La pagina contiene del testo e un componente server di tipo [Label] con identificativo [lblHeure].

  • Passiamo al pannello [HTML]. Qui troviamo il seguente codice:
<%@ Page codebehind="demo.aspx.vb" inherits="demo.demo" autoeventwireup="false" Language="vb" %>
Démo ASPX, il est
<asp:Label id="lblHeure" runat="server"></asp:Label>

Questo codice è incompleto dal punto di vista della sintassi HTML. Completiamolo:

<%@ Page codebehind="demo.aspx.vb" inherits="demo.demo" autoeventwireup="false" Language="vb" %>
<html>
    <head>
        <title>démo ASPX</title></head>
    <body>
        Démo ASPX, il est
        <asp:Label id="lblHeure" runat="server"></asp:Label>
    </body>
</html>
  • Passiamo al codice [demo.aspx.vb] per inserirvi il codice di controllo che inserirà l'ora nel componente [lblHeure]. Si nota che quest'ultimo non viene riconosciuto da Intellisense, lo strumento di assistenza alla scrittura del codice.
  • Chiudiamo [demo.aspx] e [demo.aspx.vb] dopo averli salvati, quindi li riapriamo. Passare al codice [demo.aspx.vb]. Questa volta il componente [lblHeure] di [demo.aspx] viene correttamente riconosciuto da Intellisense nel codice [demo.aspx.vb]. Completare il codice:

Image

  • generare il progetto tramite [Générer/Générer demo]. Se la generazione avviene correttamente, il file DLL viene generato nella cartella [bin] del progetto:

Image

  • Siamo pronti per i test. Configuriamo il server Cassini (vedi paragrafo seguente) nel modo seguente:

Image

La destinazione del collegamento a Cassini è definita come segue:

"E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812\WebServer.exe" /path:"D:\temp\07-04-05\demo" /vpath:"/demo"
E:\..\WebServer.exe
il percorso dell'eseguibile
D:\temp\07-04-05\demo
il percorso della cartella del progetto web di Visual Studio
/demo
il percorso virtuale associato
  • Avviare Cassini. La sua icona viene aggiunta alla barra delle applicazioni. Fare clic con il tasto destro del mouse sull'icona e selezionare l'opzione [Show details] per verificare la corretta configurazione del server web:

Image

  • Con un browser, apriamo la pagina che abbiamo creato, inserendo l'URL URL [http://localhost/demo/demo.aspx]. Otteniamo il seguente risultato:

Image

Siamo riusciti a creare un’applicazione web in Visual Studio utilizzando:

  • un progetto di tipo [bibliothèque de classes]
  • il server web Cassini

Ora sappiamo come sviluppare applicazioni web su computer che non dispongono del server IIS, come nel caso dei computer Windows XP, edizione Home.

3.2. Dove si trova il server web Cassini ?

Per lavorare con la piattaforma .NET di Microsoft, è possibile utilizzare il server web Cassini. Questo è disponibile tramite un prodotto denominato [WebMatrix], che costituisce un ambiente gratuito di sviluppo web sulle piattaforme .NET, disponibile all’indirizzo URL:

Image

Seguiremo attentamente la procedura di installazione del prodotto:

  • scaricare e installare la piattaforma .NET (versione 1.1 del marzo 2004)
  • scaricare e installare WebMatrix
  • scaricare e installare MSDE (Microsoft Data Engine), che è una versione limitata di SQL Server.

Una volta completata l’installazione, il prodotto [WebMatrix] sarà disponibile tra i programmi installati:

Image

Il collegamento [ASP.NET] Web Matrix avvia IDE per lo sviluppo di ASP.NET:

Image

Il collegamento [Class Browser] avvia uno strumento di esplorazione delle classi .NET:

Image

Per testare l'installazione, avviamo [WebMatrix]:

All’avvio iniziale, [WebMatrix] richiede le caratteristiche del nuovo projet.C: questa è la sua configurazione predefinita. È possibile configurarlo in modo che non visualizzi questa finestra di dialogo all’avvio. Ciò si ottiene tramite l’opzione [File/New File]. [WebMatrix] consente di creare scheletri per diverse applicazioni web. In precedenza, abbiamo specificato con (1) che volevamo creare un’applicazione [ASP.ET Page], ovvero una pagina web. Con (2), specifichiamo la cartella in cui verrà inserita questa pagina web. Al punto (3) indichiamo il nome della pagina. Deve avere il suffisso .aspx. Infine, al punto (4), specifichiamo che vogliamo lavorare con il linguaggio VB.NET; [WebMatrix] supporta inoltre i linguaggi C# e J#. Fatto ciò, [WebMatrix] visualizza una pagina di modifica del file [demo1.aspx]. In essa inseriamo il seguente codice:

Image

  • La scheda [Design] consente di “progettare” la pagina web che si desidera realizzare. Il procedimento è simile a quello utilizzato con un IDE per la creazione di applicazioni Windows.
  • La progettazione grafica della pagina web in [Design] genererà codice HTML nella scheda [HTML]
  • la pagina web può contenere controlli che generano eventi ai quali è necessario reagire, ad esempio un pulsante. Questi eventi saranno gestiti dal codice VB.NET che verrà inserito nella scheda [Code]
  • alla fine, il file demo1.aspx è un file di testo che combina il codice HTML e il codice VB.NET, risultato della progettazione grafica effettuata in [Design], del codice HTML che è stato possibile aggiungere manualmente in [HTML] e del codice VB.NET inserito in [Code]. L'intero file è disponibile nella scheda [All].
  • Uno sviluppatore esperto di ASP.ET può creare il file demo1.aspx direttamente con un editor di testo senza l'ausilio di alcun IDE.

Selezioniamo l'opzione [All]. Si nota che [WebMatrix] ha già generato del codice:

<%@ Page Language="VB" %>
<script runat="server">

     ' Inserire qui il codice della pagina
    '

</script>
<html>
<head>
</head>
<body>
    <form runat="server">
         <!-- Inserire qui il contenuto -->
    </form>
</body>
</html>

Non cercheremo qui di spiegare questo codice. Lo trasformiamo nel modo seguente:

<html>
<head>
    <title>Démo asp.net </title>
</head>
<body>
    Il est <% =Date.Now.ToString("hh:mm:ss") %>
</body>
</html>

Il codice sopra riportato è una combinazione di HTML e del codice VB.NET. È stato inserito tra i tag <% ... %>. Per eseguire questo codice, utilizziamo l'opzione [View/Start]. [WebMatrix] avvia quindi il server Web Cassini se non è già in esecuzione

Image

È possibile accettare i valori predefiniti proposti in questa finestra di dialogo e selezionare l’opzione [Start]. Il server Web è ora attivo. [WebMatrix] avvierà quindi il browser predefinito del computer su cui si trova e richiederà l'URL http://localhost:8080/demo1.aspx:

Image

È possibile utilizzare il server Cassini al di fuori di [WebMatrix]. L’eseguibile del server si trova in <WebMatrix>\<versione>\WebServer.exe dove <WebMatrix> è la directory di installazione di [WebMatrix] e <versione> è il suo numero di versione:

Image

Apriamo una finestra DOS e accediamo alla cartella del server Cassini:

E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>dir
...
29/05/2003  11:00               53 248 WebServer.exe
...

Eseguiamo [WebServer.exe] senza parametri:

E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>webserver

Viene visualizzata una finestra di aiuto:

Image

L'applicazione [WebServer], nota anche come server web Cassini, accetta tre parametri:

  • /port: numero di porta del servizio web. Può essere qualsiasi valore. Il valore predefinito è 80
  • /path: percorso fisico di una cartella sul disco
  • /vpath: cartella virtuale associata alla cartella fisica precedente. Si presti attenzione al fatto che la sintassi non è /path=percorso ma /vpath:percorso, contrariamente a quanto indicato nell’esempio [Example] del pannello di aiuto sopra riportato.

Inseriamo il file [demo1.aspx] nella seguente cartella:

Image

Associamo alla cartella fisica [d:\data\devel\webmatrix] la cartella virtuale [/webmatrix]. Il server web potrebbe essere avviato nel modo seguente:

E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>webserver /port:100 /path:"d:\data\devel\webmatrix" /vpath:"/webmatrix"

Il server Cassini è ora attivo e la sua icona appare nella barra delle applicazioni. Se si fa doppio clic su di essa:

Image

Si visualizzano le impostazioni di avvio del server. È inoltre possibile arrestare [Stop] o riavviare [Restart] il server web. Cliccando sul link [Root URL], si visualizza la radice dell’albero web del server in un browser:

Image

Seguiamo il link [demos]:

Image

poi il link [demo1.aspx]:

Image

Si vede quindi che se la cartella fisica P=[d:\data\devel\webmatrix] è stata associata alla cartella virtuale V=[/webmatrix] e il server opera sulla porta 100, la pagina web [demo1.aspx], che si trova fisicamente in [P\demos], sarà accessibile localmente tramite URL [http://localhost:100/V/demos/demo1.aspx].

Per evitare di dover passare attraverso una finestra DOS per avviare il server Cassini, è possibile creare un collegamento all’eseguibile del server con proprietà simili alle seguenti:

Image

Cible
"C:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812\WebServer.exe" /port:80 /path:"D:\data\serge\lavoro\2004-2005\aspnet\webarticles-010405\versione3\web" /vpath:"/webarticles"
Démarrer dans
"C:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812"

3.3. Dove si trova Spring?

Il sito principale di Spring è [http://www.springframework.org/]. Si tratta del sito della versione Java. La versione .NET attualmente in fase di sviluppo (aprile 2005) è disponibile all'URL [http://www.springframework.net/].

Image

Il sito di download è disponibile all’indirizzo [SourceForge]:

Image

Una volta scaricato il file zip sopra indicato, decomprimerlo:

Image

In questo documento abbiamo utilizzato solo il contenuto della cartella [bin]:

Image

In un progetto Visual Studio che utilizza Spring, è necessario eseguire sistematicamente due operazioni:

  • inserire i file sopra indicati nella cartella [bin] del progetto
  • aggiungere al progetto un riferimento all'assembly [Spring.Core.dll]

3.4. Dove si trova Nunit?

Il sito principale di Nunit è [http://www.nunit.org/]. La versione disponibile nell’aprile 2005 è la 2.2.0:

Image

Scaricate questa versione e installatela. L'installazione crea una cartella in cui si trova la versione grafica di prova:

Ciò che è interessante si trova nella cartella [bin]:

Image

Image

La freccia sopra indica l’utilità grafica di test. L’installazione ha inoltre aggiunto nuovi elementi al repository degli assembly di Visual Studio che scopriremo ora.

Creiamo il seguente progetto Visual Studio:

Image

La classe sottoposta a test si trova in [Personne.vb]:

Public Class Personne

     ' campi privati
    Private _nom As String
    Private _age As Integer

     ' costruttore predefinito
    Public Sub New()
    End Sub

     ' proprietà associate ai campi privati
    Public Property nom() As String
        Get
            Return _nom
        End Get
        Set(ByVal Value As String)
            _nom = Value
        End Set
    End Property

    Public Property age() As Integer
        Get
            Return _age
        End Get
        Set(ByVal Value As Integer)
            _age = Value
        End Set
    End Property

     ' stringa di identità
    Public Overrides Function tostring() As String
        Return String.Format("[{0},{1}]", nom, age)
    End Function

     ' metodo init
    Public Sub init()
        Console.WriteLine("init personne {0}", Me.ToString)
    End Sub

     ' metodo close
    Public Sub close()
        Console.WriteLine("destroy personne {0}", Me.ToString)
    End Sub

End Class

La classe di test si trova in [NunitTestPersonne-1.vb]:

Imports System
Imports NUnit.Framework

<TestFixture()> _
 Public Class NunitTestPersonne

     ' oggetto sottoposto a test
    Private personne1 As Personne

    <SetUp()> _
    Public Sub init()
         ' si crea un'istanza di Persona
        personne1 = New Personne
         ' log
        Console.WriteLine("setup test")
    End Sub

    <Test()> _
    Public Sub demo()
         ' log schermo
        Console.WriteLine("début test")
         ' inizializzazione persona1
        With personne1
            .nom = "paul"
            .age = 10
        End With
         ' test
        Assert.AreEqual("paul", personne1.nom)
        Assert.AreEqual(10, personne1.age)
         ' log schermo
        Console.WriteLine("fin test")
    End Sub

    <TearDown()> _
    Public Sub destroy()
         ' monitoraggio
        Console.WriteLine("teardown test")
    End Sub

End Class

Ci sono diverse cose da notare:

  • i metodi sono dotati di attributi quali <Setup()>, <TearDown()>, ...
  • affinché questi attributi vengano riconosciuti, è necessario che:
    • il progetto faccia riferimento all'assembly [nunit.framework.dll]
    • la classe di test importi lo spazio dei nomi [NUnit.Framework]

Il riferimento si ottiene facendo clic con il tasto destro del mouse su [References] nell’Esplora soluzioni:

Image

L'assembly [nunit.framework.dll] dovrebbe essere presente nell'elenco proposto se l'installazione di [Nunit] è andata a buon fine. È sufficiente fare doppio clic sull'assembly per aggiungerlo al progetto:

Image

Una volta fatto ciò, la classe di test [NunitTestPersonne] deve importare lo spazio dei nomi [NUnit.Framework]:

Imports NUnit.Framework

Gli attributi della classe di test [NunitTestPersonne] devono quindi essere riconosciuti.

  • l'attributo <Test()> indica un metodo da testare
  • l'attributo <Setup()> indica il metodo da eseguire prima di ogni metodo sottoposto a test
  • l'attributo <TearDown()> indica il metodo da eseguire dopo ogni metodo testato
  • il metodo Assert.AreEqual consente di verificare l’uguaglianza tra due Esistono numerosi altri metodi di tipo Assert.xx.
  • L'utilità NUnit interrompe l'esecuzione di un metodo testato non appena un metodo [Assert] fallisce e visualizza un messaggio di errore. In caso contrario, visualizza un messaggio di esito positivo.

Configuriamo il nostro progetto in modo che generi un DLL:

Image

Il DLL generato si chiamerà [nunit-demos-1.dll] e verrà inserito per impostazione predefinita nella cartella [bin] del progetto. Generiamo il nostro progetto. Nella cartella [bin] otteniamo:

Image

Avviamo ora l’utilità di test grafico Nunit. Ricordiamo che si trova in <Nunit>\bin e che si chiama [nunit-gui.exe]. <Nunit> indica la cartella di installazione di [Nunit]. Si ottiene la seguente interfaccia:

Image

Utilizziamo l’opzione di menu [File/Open] per caricare i file DLL e [nunit-demos-1.dll] del nostro progetto:

Image

[Nunit] è in grado di rilevare automaticamente le classi di test presenti nel file DLL caricato. In questo caso, individua la classe [NunitTestPersonne]. Visualizza quindi tutti i metodi della classe che presentano l'attributo <Test()>. Il pulsante [Run] consente di avviare i test sull'oggetto selezionato. Se quest’ultimo è la classe [NunitTestPersonne], vengono testati tutti i metodi visualizzati. È possibile richiedere il test di un metodo specifico selezionandolo e richiedendone l’esecuzione tramite [Run]. Richiediamo l’esecuzione della classe:

Image

Un test superato su un metodo è indicato da un punto verde accanto al metodo nella finestra di sinistra. Un test fallito è indicato da un punto rosso.

La finestra [Console.Out] a destra mostra le schermate generate dai metodi testati. In questo caso, abbiamo voluto seguire lo svolgimento di un test:

1
2
3
4
setup test
début test
fin test
teardown test
  • la riga 1 mostra che il metodo dell'attributo <Setup()> viene eseguito prima del test
  • le righe 2-3 sono generate dal metodo [demo] sottoposto a test (vedi il codice sopra)
  • la riga 4 mostra che il metodo di attributo <TearDown()> viene eseguito dopo il test

3.5. Dove trovare il SGBD e di Firebird?

Il sito principale di Firebird è [http://firebird.sourceforge.net/]. La pagina dei download offre i seguenti link (aprile 2005):

Image

Si scaricheranno i seguenti elementi:

firebird-win32
SGBD per Windows
firebird-net-provider
una libreria di classi per le applicazioni .NET che consente di accedere al SGBD senza passare attraverso un driver ODBC.
firebird-ODBC-driver
il driver ODBC di Firebird

Eseguire l’installazione di questi elementi. Il SGBD viene installato in una cartella il cui contenuto è simile al seguente:

Image

I file binari si trovano nella cartella [bin]:

Image

fbguard.exe
consente di avviare/arrestare il file SGBD
isql.exe
client in modalità terminale che consente di gestire i database

Si noti che, per impostazione predefinita, l'amministratore di SGBD si chiama [SYSDBA] e la sua password è [masterkey]. In [Démarrer] sono stati installati i seguenti menu:

Image

L’opzione [Firebird Guardian] consente di avviare/arrestare il SGBD. Dopo l’avvio, l’icona del SGBD rimane nella barra delle applicazioni di Windows:

Per creare e gestire database Firebird con il client da riga di comando [isql.exe], è necessario consultare la documentazione fornita con il prodotto nella cartella [doc]. Un modo più rapido per lavorare con Firebird è utilizzare un client grafico. Un esempio di tale client è IB-Expert, descritto nel paragrafo seguente.

3.6. Dove trovare IB- Expert?

Il sito principale di Firebird è [http://www.ibexpert.com/]. La pagina dei download offre i seguenti link:

Image

Si sceglierà la versione gratuita [Personal Edition]. Una volta scaricata e installata, si avrà a disposizione una cartella simile alla seguente:

Image

Il file eseguibile è [ibexpert.exe]. Normalmente è disponibile un collegamento nel menu [Démarrer]:

Image

Una volta avviato, IBExpert visualizza la seguente finestra:

Image

Utilizziamo l’opzione [Database/Create Database] per creare un database:

Image

Server
potrebbe essere [local] o [remote]. In questo caso il nostro server si trova sulla stessa macchina di [IBExpert]. Scegliamo quindi [local]
Database
utilizzare il pulsante di tipo [dossier] dal menu a tendina per indicare il file del database. Firebird memorizza l’intero database in un unico file. Questo è uno dei suoi punti di forza. Il database viene trasferito da una postazione all’altra semplicemente copiando il file. Il suffisso [.gdb] viene aggiunto automaticamente.
Username
SYSDBA è l’amministratore predefinito delle attuali distribuzioni di Firebird
Password
masterkey è la password dell'amministratore SYSDBA delle attuali distribuzioni di Firebird
Dialect
il dialetto SQL da utilizzare
Register Database
se la casella è spuntata, IBExpert mostrerà un link al database creato dopo averlo creato

Se cliccando sul pulsante di creazione [OK] viene visualizzato il seguente avviso:

Image

significa che non avete avviato Firebird. Avviatelo. Si aprirà una nuova finestra:

Image

Server version
[IBExpert] è in grado di gestire diversi SGBD derivati da Interbase. Selezionare la versione di Firebird installata

Image

Una volta confermata questa nuova finestra da [Register], si ottiene il seguente risultato:

Image

Per accedere al database creato, è sufficiente fare doppio clic sul relativo collegamento. IBExpert visualizza quindi una struttura ad albero che consente di accedere alle proprietà del database:

Image

Creiamo una tabella. Facciamo clic con il tasto destro su [Tables] e selezioniamo l’opzione [New Table]. Si apre la finestra di definizione delle proprietà della tabella:

Iniziamo assegnando alla tabella il nome [ARTICLES] utilizzando il campo di immissione [1]:

Utilizziamo il campo di immissione [2] per definire una chiave primaria [ID]:

Un campo viene impostato come chiave primaria facendo doppio clic sul campo [PK] (Primary Key) del campo. Aggiungiamo dei campi con il pulsante [3]:

Image

Finché non si «compila» la definizione, la tabella non viene creata. Utilizziamo il pulsante [Compile] sopra riportato per completare la definizione della tabella. IBExpert prepara le query SQL per la generazione della tabella e richiede conferma:

Image

È interessante notare che IBExpert visualizza le query SQL che ha eseguito. Ciò consente di apprendere sia il linguaggio SQL sia il dialetto SQL, eventualmente proprietario, utilizzato. Il pulsante [Commit] consente di confermare la transazione in corso, mentre [Rollback] di annullarla. In questo caso la si accetta tramite [Commit]. Una volta fatto ciò, IBExpert aggiunge la tabella creata alla struttura ad albero del nostro database:

Image

Facendo doppio clic sulla tabella, si accede alle sue proprietà:

Image

Il pannello [Constraints] ci permette di aggiungere nuovi vincoli di integrità alla tabella. Apriamolo:

Image

Troviamo il vincolo di chiave primaria che abbiamo creato. È possibile aggiungere altri vincoli:

  • chiavi esterne [Foreign Keys]
  • vincoli di integrità dei campi [Checks]
  • vincoli di unicità dei campi [Uniques]

Si noti che:

  • i campi [ID, PRIX, STOCKACTUEL, STOKMINIMUM] devono essere >0
  • il campo [NOM] deve essere non vuoto e univoco

Apriamo il pannello [Checks] e facciamo clic con il tasto destro del mouse nell'area di definizione dei vincoli per aggiungere un nuovo vincolo:

Image

Definiamo i vincoli desiderati:

Image

Si noti che il vincolo [NOM<>''] utilizza due apostrofi e non virgolette. Compiliamo questi vincoli utilizzando il pulsante [Compile] qui sopra:

Image

Anche in questo caso, IBExpert fornisce una spiegazione chiara indicando le query SQL che ha eseguito. Passiamo ora al pannello [Constraints/Uniques] per specificare che il nome deve essere univoco:

Image

Definiamo il vincolo:

Image

Compiliamolo. Fatto ciò, apriamo il pannello [DDL] della tabella [ARTICLES]:

Image

Questo fornisce il codice SQL per la generazione della tabella con tutti i suoi vincoli. È possibile salvare questo codice in uno script per riutilizzarlo in seguito:

SET SQL DIALECT 3;
SET NAMES NONE;
CREATE TABLE ARTICLES (
    ID            INTEGER NOT NULL,
    NOM           VARCHAR(20) NOT NULL,
    PRIX          DOUBLE PRECISION NOT NULL,
    STOCKACTUEL   INTEGER NOT NULL,
    STOCKMINIMUM  INTEGER NOT NULL
);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_ID check (ID>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_PRIX check (PRIX>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_STOCKACTUEL check (STOCKACTUEL>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_STOCKMINIMUM check (STOCKMINIMUM>0);
ALTER TABLE ARTICLES ADD CONSTRAINT CHK_NOM check (NOM<>'');
ALTER TABLE ARTICLES ADD CONSTRAINT UNQ_NOM UNIQUE (NOM);
ALTER TABLE ARTICLES ADD CONSTRAINT PK_ARTICLES PRIMARY KEY (ID);

È ora il momento di inserire i dati nella tabella [ARTICLES]. A tal fine, utilizziamo il relativo pannello [Data]:

Image

I dati vengono inseriti facendo doppio clic sui campi di immissione di ciascuna riga della tabella. È possibile aggiungere una nuova riga con il pulsante [+], mentre per eliminare una riga si utilizza il pulsante [-]. Queste operazioni vengono eseguite in una transazione che viene confermata tramite il pulsante [Commit Transaction]. Senza questa conferma, i dati andranno persi.

IBExpert consente di generare query SQL tramite l’opzione [Tools/SQL Editor] o [F12]. Si ha quindi accesso a un editor avanzato di query SQL con cui è possibile eseguire le query. Queste vengono memorizzate e si può così tornare a una query già eseguita. Ecco un esempio:

Image

Si esegue la query SQL utilizzando il pulsante [Execute] sopra indicato. Si ottiene il seguente risultato:

Image

Concludiamo qui le nostre dimostrazioni. La combinazione IBExpert-Firebird si rivela eccellente per l’apprendimento dei database.

3.7. Installazione e utilizzo di un driver ODBC per [Firebird]

3.8. Installazione del driver

Il link [firebird-odbc-provider] presente nella pagina dei download di [Firebird] (paragrafo 3.5) consente di accedere a un driver ODBC. Una volta installato, questo compare nell’elenco dei driver ODBC installati.

3.9. Creare una sorgente ODBC

  • avviare lo strumento [Démarrer -> Paramètres -> Outil de configuration -> Outils d'administration -> Sources de données ODBC]:

Image

  • Si aprirà la seguente finestra:

Image

  • aggiungiamo [Add], una nuova fonte di dati di sistema (pannello [System DSN]), che assoceremo al database Firebird creato nel paragrafo precedente:

Image

  • dobbiamo innanzitutto specificare il driver ODBC da utilizzare. Qui sopra, scegliamo il driver per Firebird e poi procediamo con [Terminer]. A questo punto subentra la procedura guidata del driver ODBC di Firebird:

Image

  • compiliamo i vari campi:

Image

DSN [demo-odbc-firebird]
il nome DSN della sorgente ODBC - può essere qualsiasi
Database [D:\..\DBARTICLES.GDB]
il nome del file Firebird BD da elaborare – utilizzare [Browse] per indicare il file .gbd corrispondente
Database Account [SYSDBA]
ID da utilizzare per connettersi al database
Password [masterkey]
la password associata a questo identificativo

Il pulsante [Test connection] consente di verificare la validità delle informazioni fornite. Prima di utilizzarlo, avviare SGBD [Firebird]:

Image

  • convalidare la procedura guidata ODBC, eseguendo [OK] tutte le volte necessarie

3.10. Verificare la sorgente ODBC

Esistono diversi modi per verificare il corretto funzionamento di una sorgente ODBC. In questo caso utilizzeremo Excel:

Image

  • utilizziamo l’opzione [Données -> Données externes -> Créer une requête] sopra indicata. Si apre la prima finestra di una procedura guidata per la definizione della fonte dati. Il pannello [Bases de données] elenca le fonti ODBC attualmente definite sul computer:

Image

  • Selezioniamo la fonte ODBC [odbc-firebird-articles] che abbiamo appena creato e passiamo alla fase successiva con [OK]:

Image

  • questa finestra elenca le tabelle e le colonne disponibili nella fonte ODBC. Prendiamo l’intera tabella:

Image

  • Passiamo alla fase successiva con [Suivant]:

Image

  • Questa fase ci permette di filtrare i dati. In questo caso non applichiamo alcun filtro e passiamo alla fase successiva:

Image

  • Questa fase ci permette di ordinare i dati. Non lo facciamo e passiamo alla fase successiva:

Image

  • L'ultima fase ci chiede cosa vogliamo fare con i dati. In questo caso, li esportiamo in Excel:

Image

  • A questo punto, Excel chiede dove si desidera inserire i dati recuperati. Li inseriamo nel foglio attivo a partire dalla cella A1. I dati vengono quindi recuperati nel foglio Excel:

Image

Esistono altri modi per verificare la validità di una fonte ODBC. Ad esempio, è possibile utilizzare la suite gratuita OpenOffice disponibile su URL [http://www.openoffice.org]. Ecco un esempio con un testo OpenOffice:

  • un'icona sul lato sinistro della finestra di OpenOffice consente di accedere alle fonti dei dati. L'interfaccia cambia quindi per visualizzare un'area di gestione delle fonti dei dati:

Image

  • È predefinita una fonte dati, la fonte [Bibliography]. Cliccando con il tasto destro sull'area delle fonti dati è possibile crearne una nuova con l'opzione [Gérer les sources de données]:

Image

  • Un assistente [Gestion des sources de données] consente di creare fonti di dati. Facendo clic con il tasto destro del mouse sull'area delle fonti di dati è possibile crearne una nuova con l'opzione [Nouvelle source de données]:

Image

Nom [odbc-firebird-articles]
un nome qualsiasi. In questo caso abbiamo ripreso il nome della fonte ODBC
Type de BD [odbc]
OpenOffice è in grado di gestire diversi tipi di BD tramite JDBC, ODBC o direttamente (MySQL, Dbase, ...). Per il nostro esempio, occorre scegliere ODBC
URL de la source de données
il pulsante a destra del campo di immissione ci consente di accedere all’elenco delle fonti ODBC del computer. Selezioniamo la fonte [odbc-firebird-articles]
  • passiamo al pannello [ODBC] per definire l’utente con cui verrà effettuato l’accesso:

Image

Nom d'utilisateur [sysdba]
il proprietario della sorgente ODBC
  • si passa al pannello [Tables]. Viene richiesta la password. In questo caso è [masterkey]:

Image

  • si esegue [OK]. Viene quindi visualizzato l'elenco delle tabelle della sorgente ODBC:

Image

  • È possibile definire le tabelle che verranno visualizzate nel documento [OpenOffice]. In questo caso scegliamo la tabella [ARTICLES] e otteniamo [OK]. La definizione della fonte dati è completata. Essa compare quindi nell’elenco delle fonti dati del documento attivo:

Image

  • È possibile trascinare con il mouse la tabella [ARTICLES] sopra indicata nel testo [OpenOffice]:

Image

3.11. Stringa di connessione di una fonte ODBC Firebird

  • avviare Visual Studio e visualizzare l'esploratore dei server [Affichage/Explorateur de serveurs]:
  • fare clic con il tasto destro su [Connexion de données] e selezionare l'opzione [Ajouter une connexion]:

Image

  • nel pannello [Provider], specificare che si desidera utilizzare una fonte ODBC (vedi sopra), quindi passare al pannello [Connection]:

Image

Use data source name
[demo-odbc-firebird]
selezionare la fonte ODBC dal menu a tendina. Dovrebbe apparire quella appena creata. Se necessario, utilizzare [Refresh] per aggiornare l'elenco delle fonti ODBC.
User name [SYSDBA]
ID da utilizzare per connettersi al database
Password [masterkey]
la password associata a questo identificativo

Anche in questo caso, un pulsante [Test Connection] consente di verificare la validità delle informazioni:

Image

  • confermare la procedura guidata con [OK]. L’origine dati viene quindi visualizzata nella finestra [Explorateur de serveurs] di Visual Studio:

Image

  • facendo doppio clic sulla tabella [ARTICLES], si accede ai dati della tabella:

Image

  • se si fa clic con il tasto destro del mouse sul collegamento [Firebird Server D:\temp\... ] e si seleziona l’opzione [Propriétés], si accede alle proprietà della connessione:

Image

  • la stringa di connessione [ConnectString] è una proprietà interessante da conoscere poiché il codice .NET ne ha bisogno per aprire una connessione al database. In questo caso, la stringa di connessione è:
Provider=MSDASQL.1;Persist Security Info=False;User ID=SYSDBA;Data Source=demo-odbc-firebird;Extended Properties="DSN=demo-odbc-firebird;Driver=Firebird/InterBase(r) driver;Dbname=D:\temp\07-04-05\firebird\DBARTICLES.GDB;CHARSET=NONE;UID=SYSDBA"

Molti elementi di questa stringa di connessione hanno valori predefiniti. È possibile utilizzare semplicemente la seguente stringa di connessione:

"DSN=demo-odbc-firebird;UID=SYSDBA;PASSWORD=masterkey"

Questo conclude la nostra presentazione del driver ODBC di [Firebird].

3.12. Dove trovare il SGBD MSDE?

MSDE è la versione gratuita del server SGBD SQL di Microsoft. È disponibile all'indirizzo URL [http://www.microsoft.com/sql/msde/downloads/download.asp]:

Scaricare il file di installazione, quindi installare SGBD facendo doppio clic sull'eseguibile scaricato. Una finestra richiederà la cartella di installazione. Il titolo è fuorviante. Si tratta di una cartella temporanea che potrà essere eliminata in seguito:

Leggere attentamente il file [ReadmeMSDE2000A.htm]. Il programma di installazione è il file [setup.exe] sopra indicato. Si avvia dalla riga di comando in modo da poter passare dei parametri. I principali sono i seguenti:

Paramètre
Descrizione

SAPWD="MotDePasseRenforcé"
Specifica una password più sicura da assegnare all'account amministratore «sa».

INSTANCENAME="NomInstance"
Definisce il nome dell'istanza. Se INSTANCENAME non viene specificato, il programma di installazione installa un'istanza predefinita.

Altri parametri spesso utilizzati per personalizzare un'installazione sono:

Paramètre
Descrizione

DISABLENETWORKPROTOCOLS=n
Specifica se l'istanza accetterà connessioni di rete da applicazioni in esecuzione su altri computer. Per impostazione predefinita, oppure se si specifica DISABLENTWORKPROTOCOL=1, il programma di installazione configura l'istanza in modo che rifiuti le connessioni di rete. Specificare DISABLENETWORKPROTOCOLS=0 per abilitare le connessioni di rete.
SECURITYMODE=SQL
Specifica che l'istanza deve essere installata in modalità mista, ovvero che l'istanza supporta l'autenticazione Windows e l'autenticazione SQL per le connessioni

DATADIR="chemin_dossier_données"
Specifica la cartella in cui il programma di installazione installa i database di sistema, i log degli errori e gli script di installazione. Il valore specificato per chemin_dossier_données deve terminare con una barra rovesciata (\). Per un'istanza predefinita, il programma di installazione aggiunge MSSQL\ al valore specificato. Per un'istanza con nome, il programma di installazione aggiunge MSSQL$NomInstance\, dove NomInstance è il valore specificato tramite il parametro INSTANCENAME. Il programma di installazione crea tre cartelle nel percorso specificato: una cartella Data, una cartella Log e una cartella Script.

TARGETDIR="chemin_dossier_exécutables"
Specifica la cartella in cui il programma di installazione installa i file eseguibili di MSDE 2000. Il valore specificato per chemin_dossier_exécutables deve terminare con una barra rovesciata (\). Per un'istanza predefinita, il programma di installazione aggiunge MSSQL\Binn al valore specificato. Per un'istanza con nome, il programma di installazione aggiunge MSSQL$NomInstance\Binn, dove NomInstance è il valore specificato tramite il parametro INSTANCENAME.

Dopo aver letto le raccomandazioni di installazione sopra riportate, ci posizioniamo nella cartella in cui sono stati estratti i file di installazione ed eseguiamo il seguente comando DOS (utilizzo di SGBD senza rete):

dos>setup INSTANCENAME="MSDE140405" SECURITYMODE=SQL SAPWD="azerty"
  • INSTANCENAME="MSDE140405" - questo sarà il nome della nostra istanza MSDE. È possibile installarne più di una.
  • SECURITYMODE=SQL - il sistema di gestione del database funzionerà in modalità di autenticazione mista. In questo modo sarà possibile connettersi a MSDE in due modi:
    • con un account amministratore di Windows
    • con un account MSDE - in questo caso vengono richiesti nome utente e password. Questa sarà la modalità da utilizzare in un programma che si connette a un database di SGBD.
  • SAPWD="azerty" - questa sarà la password dell'utente sa di SGBD. L'utente [sa] dispone dei diritti di amministrazione su SGBD.

Per utilizzare SGBD in rete, si sarebbe immesso il seguente comando:

dos>setup INSTANCENAME="MSDE140405" SECURITYMODE=SQL SAPWD="azerty" DISABLENETWORKPROTOCOLS=0

Il programma di installazione è essenziale e termina senza fornire alcuna indicazione... È tuttavia possibile verificare che il SGBD sia stato installato tramite l'opzione [Menu Démarrer -> Panneau de configuration -> Ajouter et supprimer des programmes]:

Image

L'installazione avviene normalmente in C:\Program Files\Microsoft SQL Server\MSSQL$nomInstance:

Nella cartella [LOG] della cartella di installazione si trova il file di log della fase di installazione di SGBD. In esso è riportata un'informazione importante: il nome dell'istanza MSDE:

2005-04-14 08:14:29.37 spid4     Le nom du serveur est «PORTABLE1_TAHE\MSDE140405».

È importante conoscere questo nome poiché tutti i client di SGBD ne avranno bisogno. In assenza di questi log, è possibile individuare il nome di un server MSDE, ovvero [machine_windows\nom_instance_MSDE]. Il nome del computer è disponibile in diversi punti. Ad esempio:

  • fare clic con il tasto destro del mouse su [poste de travail] sul desktop, selezionare l’opzione [propriétés], quindi il pannello [Nom de l'ordinateur]:

Image

Non è ancora chiaro come avviare il server MSDE. Normalmente dovrebbe essere presente un collegamento in [Démarrer/Démarrage].

Image

Se si controllano le proprietà di questo collegamento, si nota che il percorso di destinazione è il seguente:

"C:\Program Files\Microsoft SQL Server\80\Tools\Binn\sqlmangr.exe" /n

Nella cartella [ C:\Program Files\Microsoft SQL Server] sono presenti le seguenti sottocartelle:

Image

  • MSSQL$MSDE140405 è la cartella dell'istanza MSDE che abbiamo appena installato.
  • MSSQL è la cartella di un'istanza precedente, MSDE. Poiché non ha un nome, viene chiamata «istanza predefinita».
  • La cartella [80] è una cartella comune alle diverse istanze di MSDE installate. La destinazione [sqlmangr.exe] del collegamento che avvia un'istanza di MSDE si trova nella cartella [ 80\Tools\Binn].
Avviamo MSDE tramite il collegamento di [Démarrer -> Programmes -> Démarrage]. Non succede praticamente nulla, se non che un'icona si è posizionata nella barra di stato:
Facciamo doppio clic su questa icona:
Il server MSDE qui proposto è il server predefinito
[PORTABLE1_TAHE] presente sul computer. Ricordiamo che
il server MSDE che abbiamo installato si chiama
[PORTABLE1_TAHE\MSDE140405]. Modifichiamo il
nome del server nell’apposito campo:
Se tutto va bene, l’istanza [MSDE140405] dovrebbe essere avviata:

È possibile effettuare una prima verifica. Nella stessa cartella in cui si trova [sqlmangr.exe], è presente un client console [osql.exe] che consente di connettersi a un server MSDE e di inviare comandi SQL. Durante l’installazione abbiamo assegnato la password [azerty] all’amministratore [sa] del nostro server MSDE. Tramite il client console, ci collegheremo al server appena installato. Eseguendo il comando [osql -?] viene visualizzato l’elenco dei parametri disponibili:

C:\Program Files\Microsoft SQL Server\80\Tools\Binn>osql -?
utilisation : osql
  [-U ID de connexion]
  [-P mot de passe]
  [-S serveur]
  [-H nom de l'hôte]
  [-E connexion approuvée]
  [-d utiliser le nom de la base de données]
  [-l limite du temps de connexion]
  [-t limite du temps de requête]
  [-h en-têtes]
  [-s séparateur de colonnes]
  [-w largeur de colonne]
  [-a taille du paquet]
  [-e entrée d'écho]
  [-I Activer les identificateurs marqués]
  [-L liste des serveurs]
  [-c fin de cmd]           [-D nom ODBC DSN]
  [-q "requête cmdline"]
  [-Q "requête cmdline" et quitter]
  [-n supprimer la numérotation]
  [-m niveau d'erreur]
  [-r msgs vers stderr]
  [-V severitylevel]
  [-i fichier d'entrée]
  [-o fichier de sortie]
  [-p imprimer les statistiques]  [-b abandon du lot d'instruction après erreur]

  [-X[1] désactive les commandes [et quitte avec un avertissement]]
  [-O utiliser le comportement Old ISQL désactive les éléments suivants]
      <EOF> traitement par lot d'instructions
      Mise à l'échelle automatique de la largeur de la console
      Messages larges
      niveau d'erreur par défaut de  -1 au lieu de 1
  [-? description de la syntaxe]

Avviamo il server [MSDE140405] come indicato sopra, quindi in una finestra DOS utilizziamo [osql] per collegarci al server [portable1_tahe\msde140405] con l'identità [sa, azerty]:

C:\Program Files\Microsoft SQL Server\80\Tools\Binn>OSQL.EXE -U sa -S portable1_tahe\msde140405 -P azerty
1>

Il prompt [1>] indica che [osql] è in attesa di un comando. La connessione è corretta. Per utilizzare correttamente [osql], è necessario consultare la documentazione di MSDE. È disponibile in diversi formati (pdf, htmlhelp, ...). Si tratta di una documentazione molto voluminosa. In genere si preferisce utilizzare un client grafico per lavorare con un database MSDE. È ciò che viene proposto più avanti. Per uscire da [osql], si utilizza il comando [exit]:

1> exit

Vedremo ora come creare database nel server MSDE appena installato. Prima, però, presentiamo brevemente uno strumento [MSDE Manager] che consente di modificare la modalità di autenticazione di un server MSDE. Infatti, se si installa un server di questo tipo utilizzando le opzioni di installazione predefinite, la modalità di autenticazione del server è di tipo [authentification windows]. Questo tipo di autenticazione consente l’accesso solo agli utenti identificati sul computer Windows (eventualmente tramite un dominio). Per un programma VB.NET che intende connettersi a un database per sfruttarne il contenuto, questa modalità risulta poco pratica. La situazione è ancora peggiore per le applicazioni Java che accedono al SGBD tramite un driver JDBC. Si preferirà quindi l’autenticazione mista che, oltre all’autenticazione precedente, accetta coppie (nome utente, password) dichiarate nel SGBD. Lo strumento [MSDE Manager] consente di eseguire questa operazione.

3.13. Dove si trova MSDE Manager?

[MSDE Manager] è uno strumento di amministrazione di SGBD e MSDE. È disponibile su URL e [http://www.valesoftware.com/].

È possibile scaricare la versione gratuita seguendo il link sopra riportato:

Image

Image

La versione di prova ha una durata limitata. Questo va bene, poiché la useremo solo per un’unica operazione ben precisa. Scarichiamo e installiamo il prodotto. Sul desktop viene creato un collegamento. Lo utilizziamo per avviare MSDE Manager. Superate le prime finestre, arriviamo a questa:

Image

  • avviare il server MSDE140405
  • è necessario essere connessi al computer Windows come amministratore
  • fare clic con il tasto destro del mouse sul collegamento [SQL Server Group] e selezionare l’opzione [New SQL Server Registration]:

Image

Image

Si ottiene la seguente pagina delle proprietà:

Server Name 
portable1_tahe\msde140405 - nome dell’istanza MSDE a cui si desidera connettersi
Connection 
Autenticazione Windows: questa modalità è sempre disponibile e consente a un amministratore del computer Windows di connettersi al server MSDE
Server Group 
Selezionare l'unico gruppo di server visualizzato [SQL Server Group]

Una volta cliccato su [OK], viene visualizzata la struttura ad albero delle proprietà del server MSDE140405:

Image

Potremmo iniziare a creare dei database. Non lo faremo perché utilizzeremo un altro prodotto, clone del prodotto IBExpert già esaminato. Modificheremo semplicemente la modalità di autenticazione di MSDE. Facciamo clic con il tasto destro del mouse sul server MSDE140405 sopra indicato e selezioniamo l’opzione [Design]:

Image

Viene visualizzata la seguente finestra informativa:

Image

Il pannello [General] fornisce informazioni sul server MSDE a cui siamo connessi. La pagina [Security] è quella che ci interessa:

Image

A questo punto è necessario assicurarsi che la modalità di autenticazione di MSDE sia effettivamente [SQL Server and Windows]. In questo modo sarà possibile connettersi a MSDE in due modi:

  • con un account amministratore di Windows – è ciò che è stato fatto in questo caso
  • con un account MSDE: in questo caso vengono richiesti un nome utente e una password. Questa sarà la modalità da utilizzare in un programma che si connette a un database di SGBD.

Confermiamo questa scelta e usciamo da MSDE Manager. Non ne avremo più bisogno. Per creare database MSDE, utilizzeremo un altro strumento: EMS MS SQL Manager.

3.14. Dove si trova EMS , MS e SQL Manager?

EMS MS SQL Manager è uno strumento grafico che consente di lavorare con il SGBD Microsoft SQL Server e quindi con MSDE. È molto simile allo strumento IB-Expert descritto in precedenza. È disponibile a partire dalla versione URL [http://sqlmanager.net/] (aprile 2005):

Image

Il sito offre strumenti di gestione per numerosi SGBD. Segui il link [MS SQL Manager]:

Image

Qui sopra scegliamo la versione leggera del prodotto. Scaricatela e installatela. Si otterrà una cartella simile alla seguente:

Image

Il file eseguibile è [MsManager.exe]. Normalmente è disponibile un collegamento nel menu [Démarrer]:

Image

Una volta avviato, MS SQL Manager visualizza la seguente finestra:

Image

Iniziamo registrando il server MSDE su cui si desidera lavorare con l’opzione [Database/Register Host]:

Commenti:

  • fase 1 - come già detto, MSDE supporta due modalità di autenticazione: Windows e SQL Server. In modalità [windows], vengono utilizzati gli account del computer Windows. In modalità [SQL Server], vengono utilizzati gli account del SGBD. [SQL Server] può funzionare in modalità [Windows] o in modalità mista [Windows, SQL Server]. La modalità di autenticazione [Windows] è sempre disponibile. La modalità di autenticazione mista, invece, non è sempre attiva. Abbiamo visto come attivarla con MSDE Manager. Nell’esempio sopra riportato, l’accesso è stato effettuato con un account amministratore.
  • Fase 2 - Una volta completata con successo l’autenticazione, vengono proposte le basi predefinite di MSDE. Nell’esempio sopra riportato, sono state selezionate tutte.

Commenti:

  • Fase 3: è possibile selezionare le opzioni di amministrazione dei database scelti. In questo caso, sono state mantenute le opzioni proposte di default.
  • Fase 4: registriamo il server MSDE con il pulsante [Register]

Il server MSDE compare quindi nell’esploratore dei database:

Image

Utilizziamo l’opzione [Database/Create Database] per creare un database:

Fase 2:

Quando compare questa pagina informativa, il database [dbarticles] è stato creato. È possibile verificarlo tramite il pulsante [Test Connect]. Nel campo [Database alias] è possibile inserire ciò che si desidera. In questo caso abbiamo indicato:

  • il nome del database
  • il nome del server MSDE su cui si trova
  • l'utente [admarticles] che sarà il proprietario di questo database e la sua password [mdparticles]. Questo utente non è ancora stato creato, ma lo sarà a breve.

Fase 3:

  • con il pulsante [Register] registriamo il nuovo database in [MS SQL Server ]. Dopo la registrazione, il database [admarticles] è presente nell’elenco dei database. Facendo doppio clic su di esso viene visualizzata la struttura ad albero delle sue proprietà.

Creiamo un nuovo account di accesso che fungerà da amministratore del database [admarticles].

  • Selezionare l’opzione [Tools/Login manager]:

Image

  • Si nota che sono già stati definiti due account:
    • [BUILTIN\Administrateurs]: questo account utilizza l’autenticazione Windows. Rappresenta gli amministratori del computer Windows su cui si trova il server MSDE
    • sa: questo login utilizza l'autenticazione SQL. Si tratta, per impostazione predefinita, dell'amministratore del server MSDE. Si ricorda che, in base alle impostazioni configurate durante l’installazione di SGBD MSDE, la sua password è [azerty].
  • Facciamo clic con il tasto destro sull’area degli accessi e aggiungiamo un nuovo accesso:
  • Viene visualizzata una finestra di dialogo in cui definiamo le caratteristiche del nuovo login:

Image

  • Nome login: admarticles
  • Password: mdparticles
  • Una volta premuto il pulsante [OK], MS Manager ci mostra le query SQL che sta per eseguire:

Image

Il linguaggio SQL sopra riportato è Transact-SQL, il linguaggio SQL di MSDE. Richiediamo l'esecuzione di questo codice tramite [OK]

  • il nuovo login viene inserito nell’elenco dei login:

Image

  • nella finestra delle proprietà del database [dbarticles], facciamo clic con il tasto destro su [users] per creare un utente con diritti sul database [dbarticles]:

Image

  • si ottiene quindi la seguente finestra:

Image

  • nel menu a tendina [Login] è presente l'elenco degli accessi esistenti. Si seleziona l'accesso [admarticles].
  • In [Name] si inserisce un nome utente. È possibile associare più utenti allo stesso login. Pertanto, anche in MSDE, la creazione di un utente richiede innanzitutto la creazione di un login. Il pannello [User] diventa il seguente:

Image

  • Passiamo ora al pannello [Member Of], che ci consentirà di definire i diritti del nostro utente:

Image

  • Non sono un utente abituale di MSDE e non conosco il significato esatto di ciascuno dei ruoli proposti nella finestra a sinistra. Il ruolo [db_owner] sembra interessante (owner=proprietario). Lo scegliamo quindi per il nostro utente [admarticles]:

Image

  • confermiamo le nostre scelte tramite il pulsante [Compile] in alto. Le richieste SQL presentate all’esecuzione sono le seguenti:

Image

  • le compiliamo tramite [OK]. Ora abbiamo un utente del database [dbarticles]:

Image

  • Creiamo ora una tabella. Facciamo clic con il tasto destro su [Tables] e selezioniamo l'opzione [New Table]. Si apre la finestra di definizione delle proprietà della tabella:

Image

  • Iniziamo assegnando alla tabella il nome [ARTICLES] utilizzando il campo di immissione [Table Name]. Passiamo quindi al pannello [Fields]:

Image

  • definiamo i seguenti campi:

Image

Finché non si “compila” la definizione, la tabella non viene creata. Utilizziamo il pulsante [Compile] qui sopra per completare la definizione della tabella. [MS SQL Manager] prepara le query SQL per la generazione della tabella e richiede conferma:

Image

È interessante notare che [MS SQL Manager] visualizza le query SQL che ha eseguito. Ciò consente di apprendere il linguaggio Transact-SQL. Il pulsante [Commit] consente di confermare la transazione in corso, mentre [Rollback] di annullarla. In questo caso la si conferma tramite [Commit]. Una volta fatto ciò, [MS SQL Manager] aggiunge la tabella creata alla struttura ad albero del nostro database:

Image

Facendo doppio clic sulla tabella, si accede alle sue proprietà:

Image

Il pannello [Checks] ci permette di aggiungere nuovi vincoli di integrità alla tabella. Per la tabella [ARTICLES] creeremo i seguenti vincoli:

  • i campi [ID, PRIX, STOCKACTUEL, STOKMINIMUM] devono essere >=0
  • il campo [NOM] deve essere non vuoto

Nel pannello [Checks], facciamo clic con il tasto destro sull’area vuota per aggiungere un nuovo vincolo [New check]:

Image

  • La scheda di modifica dei vincoli si presenta come segue:

Image

Name: nome del vincolo

Tabella: tabella su cui si applica il vincolo

Definizione: espressione del vincolo

Il vincolo viene compilato tramite il pulsante [Compile] sopra riportato.

  • Il pulsante [MS SQL Manager] mostra i comandi SQL eseguiti:

Image

  • si confermano con il pulsante [Commit] (non raffigurato). Se si torna al pannello [Checks] della tabella [ARTICLES], appare il nuovo vincolo:

Image

  • Definiamo allo stesso modo gli altri vincoli per ottenere infine il seguente elenco:

Image

Fatto ciò, apriamo il pannello [DDL] della tabella [ARTICLES]:

Image

Questo pannello fornisce il codice Transact-SQL per la generazione della tabella con tutti i suoi vincoli. È possibile salvare questo codice in uno script per rieseguirlo in un secondo momento:

CREATE TABLE [ARTICLES] (
  [id] int NOT NULL,
  [nom] varchar(20) COLLATE French_CI_AS NOT NULL,
  [prix] float(53) NOT NULL,
  [stockactuel] int NOT NULL,
  [stockminimum] int NOT NULL,
  CONSTRAINT [ARTICLES_uq] UNIQUE ([nom]),
  PRIMARY KEY ([id]),
  CONSTRAINT [ARTICLES_ck_id] CHECK ([id] > 0),
  CONSTRAINT [ARTICLES_ck_nom] CHECK ([nom] <> ''),
  CONSTRAINT [ARTICLES_ck_prix] CHECK ([prix] >= 0),
  CONSTRAINT [ARTICLES_ck_stockactuel] CHECK ([stockactuel] >= 0),
  CONSTRAINT [ARTICLES_ck_stockminimum] CHECK ([stockminimum] >= 0)
)
ON [PRIMARY]
GO

È ora il momento di inserire alcuni dati nella tabella [ARTICLES]. A tal fine, utilizziamo il relativo pannello [Data]:

Image

Il pulsante [+] consente di aggiungere una riga, mentre il pulsante [-] di eliminarne una. I dati vengono inseriti semplicemente digitando nei campi di immissione di ciascuna riga della tabella. Una riga viene convalidata tramite il pulsante [Post Edit] sottostante:

Image

Creiamo due articoli:

Image

[MS SQL Manager] consente di generare query SQL tramite l’opzione [Tools/Show SQL Editor] o [F12]. Si ha quindi accesso a un editor avanzato di query SQL con cui è possibile eseguire le query. Queste vengono memorizzate e si può così tornare a una query già eseguita. Ecco un esempio:

Image

Si esegue la query SQL utilizzando il pulsante [Execute] sopra indicato. Si ottiene il seguente risultato:

Image

Concludiamo qui le nostre dimostrazioni. La coppia [MS SQL Manager - MSDE], proprio come la coppia [IBExpert - Firebird], si rivela anch’essa eccellente per l’apprendimento dei database.

3.15. Creare una sorgente ODBC [MSDE]

Il driver ODBC per SQL Server è normalmente installato di default sui computer Windows.

  • Avviare lo strumento [Démarrer -> Paramètres -> Outil de configuration -> Outils d'administration -> Sources de données ODBC]:

Image

  • Viene visualizzata la seguente finestra:

Image

  • Aggiungiamo una nuova fonte di dati di sistema (pannello [System DSN]) che assoceremo al database MSDE che abbiamo creato nel paragrafo precedente:

Image

  • dobbiamo innanzitutto specificare il driver ODBC da utilizzare. Nell’immagine sopra, scegliamo il driver per [SQL Server], quindi passiamo a [Terminer]. A questo punto subentra la procedura guidata del driver ODBC di [SQL Server]:

Image

  • compiliamo i vari campi:
Nom [odbc-msde-articles]
il nome della fonte ODBC - può essere qualsiasi nome
Description
può essere qualsiasi
Serveur SQLMap
portable_tahe\msde140405
nome del server MSDE contenente i dati della fonte ODBC
  • si crea [Suivant] per fornire nuove informazioni:

Image

  • compiliamo i vari campi:
Authentification SQL Server
si specifica che ci si collegherà alla fonte dati ODBC con un nome utente registrato nel server MSDE
ID de connexion [admarticles]
login utente
Mot de passe [mdparticles]
password utente
  • Si noti che utilizziamo per la prima volta l'utente (admarticles, mdparticles) creato in un paragrafo precedente. Ancora una volta eseguiamo [Suivant] per ottenere il seguente nuovo foglio:

Image

  • compiliamo i vari campi:
Changer la base ...
Selezioniamo il database [dbarticles] come database predefinito per l’utente [admarticles]
  • inseriamo [Suivant] per ottenere il seguente nuovo foglio:

Image

  • accettiamo i valori predefiniti e creiamo [Terminer]. Viene fornito un riepilogo delle caratteristiche della fonte ODBC che verrà creata:

Image

  • Il pulsante [Tester la source de données] ci offre la possibilità di verificare la validità delle nostre informazioni. Verificate che MSDE sia stato avviato, quindi testate la connessione:

Image

  • ora siamo certi che la coppia [admarticles, mdparticles] venga riconosciuta.

Per ulteriori test, il lettore potrà seguire la procedura illustrata al paragrafo 3.10.

3.16. Stringa di connessione a un database MSDE

  • Avviare Visual Studio e visualizzare l’esploratore dei server [Affichage/Explorateur de serveurs]:
  • fare clic con il tasto destro su [Connexion de données] e selezionare l’opzione [Ajouter une connexion]:

Image

  • nel pannello [Provider], specificare che si desidera utilizzare una sorgente SQL Server, quindi passare al pannello [Connection]. Si noti che in questo caso non si utilizza un driver ODBC.

Image

Nom de serveur
[portable1_tahe\msde140405]
nome del server MSDE a cui ci si connette
Nom d'utilisateur [admarticles]
ID da utilizzare per connettersi al database
Mot de passe [mdparticles]
la password associata a questo identificativo
base de données [dbarticles]
il database con cui si desidera lavorare

Un pulsante [Tester la connexion] consente di verificare la validità delle informazioni:

Image

  • confermare la procedura guidata con [OK]. Stranamente, una nuova finestra richiede i dettagli della connessione:

Image

  • le si inseriscono nuovamente e si esegue [OK]. La fonte dei dati appare quindi nella finestra [Explorateur de serveurs] di Visual Studio:

Image

  • facendo doppio clic sulla tabella [ARTICLES], si accede ai dati della tabella:

Image

  • se si fa clic con il tasto destro del mouse sul collegamento [portable1_tahe\msde140405.dbarticles.admarticles] nel pannello [Explorateur de serveurs] e si seleziona l’opzione [Propriétés], si accede alle proprietà della connessione:

Image

  • la stringa di connessione [ConnectString] è una proprietà interessante da conoscere poiché il codice .NET ne ha bisogno per aprire una connessione al database. In questo caso, la stringa di connessione è:
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=admarticles;Initial Catalog=dbarticles;Data Source=portable1_tahe\msde140405;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=PORTABLE1_TAHE;Use Encryption for Data=False;Tag with column collation when possible=False

Molti elementi di questa stringa di connessione hanno valori predefiniti. È possibile utilizzare semplicemente la seguente stringa di connessione:

"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=admarticles;Initial Catalog=dbarticles;Data Source=portable1_tahe\msde140405;PASSWORD=mdparticles"