Skip to content

3. Appendici

3.1. Creazione di un progetto Web con Visual Studio.NET su Windows XP Home Edition

Visual Studio.NET consente di creare diversi tipi di progetti:

Image

Per creare un progetto di applicazione Web, di norma si seleziona il tipo [Applicazione Web ASP.NET]. Questo tipo di progetto richiede un server Web IIS locale o remoto. Se si lavora su un computer con Windows XP, questo server non esiste e non può essere installato. Pertanto, non è possibile creare un progetto [Applicazione Web ASP.NET].

È possibile ovviare a questo problema accettando alcuni piccoli inconvenienti. È sufficiente:

  • utilizzare il server Web Cassini al posto del server IIS. È disponibile gratuitamente sul sito Web di Microsoft.
  • utilizzare un progetto [Libreria di classi] invece del progetto [Applicazione Web ASP.NET]

Creiamo un progetto semplice per mostrare come farlo.

  • Creare un progetto [Libreria di classi]
  • Elimina [Class1.vb]

Image

  • Aggiungi un nuovo elemento al progetto, di tipo [File di testo], e chiamalo [demo.aspx]:
  • Il file [demo.aspx] viene riconosciuto come pagina web e ad esso viene associato un editor di pagine. Questo editor presenta due pannelli:
  • [Design] per la creazione grafica della pagina
  • [HTML] per accedere al codice HTML della pagina

Image

  • Selezionare [Visualizza/Codice] per visualizzare la sezione del codice VB della pagina. Non accade nulla. Non è possibile accedere al codice VB della pagina.
  • Vai al riquadro [HTML] e inserisci il codice che collegherà la pagina [demo.aspx] al codice [demo.aspx.vb]:

Image

  • Richiedi la visualizzazione del codice di controllo associato alla pagina tramite [Visualizza codice - F7]. Verrà visualizzato il file [demo.aspx.vb]:

Image

  • La pagina [demo.aspx] viene ora riconosciuta come una pagina web [.aspx] con un file [.aspx.vb] associato.
  • Torna al riquadro [Progettazione] di [demo.aspx] e progetta la pagina seguente:

Image

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

  • Passa al riquadro [HTML]. Lì troverai 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 file [demo.aspx.vb] per scrivere il codice di controllo che imposterà l'ora nel componente [lblHeure]. Notiamo che questo non viene riconosciuto da IntelliSense, lo strumento di completamento del codice.
  • Chiudiamo [demo.aspx] e [demo.aspx.vb] dopo averli salvati, quindi riapriamoli. Passiamo al codice in [demo.aspx.vb]. Questa volta, il componente [lblHeure] di [demo.aspx] viene riconosciuto da IntelliSense nel codice [demo.aspx.vb]. Completiamo il codice:

Image

  • Compilare il progetto selezionando [Build/Build demo]. Se la compilazione ha esito positivo, la DLL viene generata nella cartella [bin] del progetto:

Image

  • Siamo pronti per il test. Configuriamo il server Cassini (vedere il paragrafo successivo) come segue:

Image

La destinazione del collegamento a Cassini è impostata 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
  • Avvia Cassini. L'icona appare nella barra delle applicazioni. Fai clic con il tasto destro del mouse su di essa e seleziona l'opzione [Mostra dettagli] per verificare che il server web sia configurato correttamente:

Image

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

Image

Abbiamo creato con successo un'applicazione web in Visual Studio utilizzando:

  • un progetto [libreria di classi]
  • il server web Cassini

Ora sappiamo come creare applicazioni web su computer che non dispongono del server IIS, come i computer con Windows XP Home Edition.

3.2. Dove si trova il server web Cassini?

Per lavorare con la piattaforma .NET di Microsoft, è possibile utilizzare il server Web Cassini. È disponibile tramite un prodotto chiamato [WebMatrix], un ambiente di sviluppo Web gratuito per piattaforme .NET disponibile all'indirizzo:

Image

Seguire attentamente i passaggi di installazione del prodotto:

  • scaricare e installare la piattaforma .NET (versione 1.1 a 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] è disponibile nell'elenco dei programmi installati:

Image

Il collegamento [ASP.NET] Web Matrix avvia l'IDE di sviluppo ASP.NET:

Image

Il collegamento [Class Browser] avvia uno strumento per esplorare le classi .NET:

Image

Per verificare l'installazione, avviamo [WebMatrix]:

All'avvio iniziale, [WebMatrix] richiede le specifiche del nuovo progetto. Questa è la sua configurazione predefinita. È possibile configurarlo in modo che questa finestra di dialogo non appaia all'avvio. È quindi possibile accedervi tramite l'opzione [File/Nuovo file]. [WebMatrix] consente di creare modelli per varie applicazioni web. In precedenza, al punto (1), abbiamo specificato che volevamo creare un'applicazione [Pagina ASP.NET], ovvero una pagina web. Al punto (2), specifichiamo la cartella in cui verrà inserita questa pagina web. Al punto (3), inseriamo il nome della pagina. Deve avere l'estensione .aspx. Infine, al punto (4), specifichiamo che vogliamo lavorare con il linguaggio VB.NET; [WebMatrix] supporta anche i linguaggi C# e J#. Una volta fatto questo, [WebMatrix] visualizza una pagina di modifica per il file [demo1.aspx]. Inseriamo lì il seguente codice:

Image

  • La scheda [Design] consente di "progettare" la pagina web che si desidera creare. Il funzionamento è simile a quello di un IDE per lo sviluppo 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 che richiedono una risposta, come un pulsante. Questi eventi saranno gestiti dal codice VB.NET inserito nella scheda [Codice]
  • In definitiva, il file demo1.aspx è un file di testo che combina codice HTML e codice VB.NET, risultante dalla progettazione grafica creata in [Design], dal codice HTML aggiunto manualmente in [HTML] e dal codice VB.NET inserito in [Code]. L'intero file è disponibile nella scheda [All].
  • Uno sviluppatore ASP.NET esperto può creare il file demo1.aspx direttamente utilizzando un editor di testo senza l'ausilio di alcun IDE.

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

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

    ' Insert page code here
    '

</script>
<html>
<head>
</head>
<body>
    <form runat="server">
         <!-- Insert content here -->
    </form>
</body>
</html>

Non tenteremo di spiegare questo codice in questa sede. Lo trasformeremo come segue:

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

Il codice sopra riportato è un mix di codice HTML e VB.NET. È stato inserito all'interno dei 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 [Avvia]. Il server web sarà quindi attivo. [WebMatrix] avvierà quindi il browser predefinito sul computer su cui è in esecuzione 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 numero di versione:

Image

Aprire una finestra del Prompt dei comandi e accedere 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 alcun parametro:

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 un numero qualsiasi. Il valore predefinito è 80
  • /path: il percorso fisico di una cartella sul disco
  • /vpath: la cartella virtuale associata alla cartella fisica precedente. Si noti che la sintassi non è /path=path ma /vpath:path, contrariamente a quanto indicato nell'[Esempio] nel pannello di aiuto sopra.

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

Image

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

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

Verranno visualizzate le impostazioni di avvio del server. È inoltre possibile arrestare [Stop] o riavviare [Restart] il server web. Se si fa clic sul link [Root URL], la radice dell'albero delle directory web del server verrà aperta in un browser:

Image

Segui il link [demos]:

Image

poi il link [demo1.aspx]:

Image

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

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

Image

Destinazione
"C:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812\WebServer.exe" /port:80 /path:"D:\data\serge\work\2004-2005\aspnet\webarticles-010405\version3\web" /vpath:"/webarticles"
Avvia in
"C:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812"

3.3. Dove posso trovare Spring?

Il sito web principale di Spring è [http://www.springframework.org/]. Questo è il sito per la versione Java. La versione .NET attualmente in fase di sviluppo (aprile 2005) è disponibile all'indirizzo [http://www.springframework.net/].

Image

Il sito per il download si trova su [SourceForge]:

Image

Una volta scaricato il file zip sopra indicato, decomprimilo:

Image

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

Image

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

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

3.4. Dove si trova NUnit?

Il sito web principale di NUnit è [http://www.nunit.org/]. La versione disponibile ad aprile 2005 è la 2.2.0:

Image

Scarica questa versione e installala. L'installazione crea una cartella contenente l'interfaccia grafica di test:

La parte interessante si trova nella cartella [bin]:

Image

Image

La freccia sopra indica l'utilità di test grafica. L'installazione ha anche aggiunto nuovi elementi al repository degli assembly di Visual Studio, che esploreremo ora.

Creiamo il seguente progetto Visual Studio:

Image

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

Public Class Personne

    ' private fields
    Private _nom As String
    Private _age As Integer

    ' default builder
    Public Sub New()
    End Sub

    ' properties associated with private fields
    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

    ' identity chain
    Public Overrides Function tostring() As String
        Return String.Format("[{0},{1}]", nom, age)
    End Function

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

    ' close method
    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

    ' object tested
    Private personne1 As Personne

    <SetUp()> _
    Public Sub init()
        ' create an instance of Person
        personne1 = New Personne
        ' log
        Console.WriteLine("setup test")
    End Sub

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

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

End Class

Alcune cose da notare:

  • ai metodi vengono assegnati attributi quali <Setup()>, <TearDown()>, ...
  • affinché questi attributi vengano riconosciuti, devono sussistere le seguenti condizioni:
    • il progetto fa riferimento all'assembly [nunit.framework.dll]
    • la classe di test importa lo spazio dei nomi [NUnit.Framework]

Il riferimento viene aggiunto facendo clic con il tasto destro del mouse su [Riferimenti] in Esplora soluzioni:

Image

L'assembly [nunit.framework.dll] dovrebbe essere presente nell'elenco 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] dovrebbero 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 sottoposto a test
  • Il metodo Assert.AreEqual consente di verificare l'uguaglianza di due entità. Esistono molti altri metodi del 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 successo.

Configuriamo il nostro progetto per generare una DLL:

Image

La DLL generata si chiamerà [nunit-demos-1.dll] e verrà collocata per impostazione predefinita nella cartella [bin] del progetto. Compiliamo il nostro progetto. Nella cartella [bin] otteniamo quanto segue:

Image

Ora avviamo l'utilità di test grafica di NUnit. Ricordiamo che si trova in <Nunit>\bin e si chiama [nunit-gui.exe]. <Nunit> si riferisce alla cartella di installazione [Nunit]. Viene visualizzata la seguente interfaccia:

Image

Utilizziamo l'opzione di menu [File/Open] per caricare la DLL [nunit-demos-1.dll] dal nostro progetto:

Image

[Nunit] è in grado di rilevare automaticamente le classi di test contenute nella DLL caricata. In questo caso, individua la classe [NunitTestPersonne]. Visualizza quindi tutti i metodi della classe che presentano l'attributo <Test()>. Il pulsante [Esegui] consente di eseguire i test sull'oggetto selezionato. Se si tratta della classe [NunitTestPersonne], vengono testati tutti i metodi visualizzati. È possibile testare un metodo specifico selezionandolo e facendo clic su [Run]. Eseguiamo la classe:

Image

Un test riuscito 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] sulla destra mostra l'output sullo schermo prodotto dai metodi testati. In questo caso, volevamo seguire l'andamento 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 dell'attributo <TearDown()> viene eseguito dopo il test

3.5. Dove posso trovare il DBMS Firebird ?

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

Image

Scaricherai i seguenti elementi:

firebird-win32
il DBMS per Windows
firebird-net-provider
una libreria di classi per applicazioni .NET che consente l'accesso al DBMS senza utilizzare un driver ODBC.
firebird-ODBC-driver
il driver ODBC di Firebird

Installare questi componenti. Il DBMS viene installato in una cartella con contenuti simili ai seguenti:

Image

I file binari si trovano nella cartella [bin]:

Image

fbguard.exe
consente di avviare/arrestare il DBMS
isql.exe
client a riga di comando per la gestione dei database

Si noti che, per impostazione predefinita, l'amministratore del DBMS si chiama [SYSDBA] e la password è [masterkey]. Sono stati aggiunti dei menu a [Start]:

Image

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

Per creare e gestire i database Firebird utilizzando il client da riga di comando [isql.exe], è necessario leggere la documentazione inclusa con il prodotto nella cartella [doc]. Un modo più veloce per lavorare con Firebird è utilizzare un client grafico. Uno di questi client è IB-Expert, descritto nella sezione seguente.

3.6. Dove posso trovare IB- Expert?

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

Image

Selezionare 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]. Di solito nel menu [Start] è disponibile un collegamento:

Image

Una volta avviato, IBExpert visualizza la seguente finestra:

Image

Utilizzare l'opzione [Database/Crea database] per creare un database:

Image

Server
può essere [locale] o [remoto]. In questo caso, il nostro server si trova sulla stessa macchina di [IBExpert]. Quindi scegliamo [locale]
Database
Utilizza il pulsante [cartella] nel menu a tendina per selezionare il file del database. Firebird memorizza l’intero database in un unico file. Questo è uno dei suoi vantaggi. Puoi trasferire il database da un computer all’altro semplicemente copiando il file. Il suffisso [.gdb] viene aggiunto automaticamente.
Nome utente
SYSDBA è l'amministratore predefinito per le attuali distribuzioni di Firebird
Password
masterkey è la password dell'amministratore SYSDBA nelle attuali distribuzioni di Firebird
Dialetto
il dialetto SQL da utilizzare
Registra database
Se questa casella è selezionata, IBExpert visualizzerà un collegamento al database dopo che è stato creato

Se, quando si fa clic sul pulsante [OK] per creare il database, viene visualizzato il seguente avviso:

Image

significa che non hai avviato Firebird. Avvialo. Apparirà una nuova finestra:

Image

Versione del server
[IBExpert] è in grado di gestire vari DBMS derivati da Interbase. Seleziona la versione di Firebird che hai installato

Image

Una volta confermata questa nuova finestra cliccando su [Registra], vedrai il seguente risultato:

Image

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

Image

Creiamo una tabella. Fare clic con il tasto destro del mouse su [Tabelle] e selezionare l'opzione [Nuova tabella]. Apparirà la finestra di definizione delle proprietà della tabella:

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

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

Per impostare un campo come chiave primaria, fare doppio clic sul campo [PK] (Chiave primaria). Aggiungiamo dei campi utilizzando il pulsante [3]:

Image

Finché non avremo "compilato" la nostra definizione, la tabella non verrà creata. Utilizza il pulsante [Compila] in alto per finalizzare la definizione della tabella. IBExpert prepara le query SQL per generare la tabella e richiede una conferma:

Image

È interessante notare che IBExpert visualizza le query SQL che ha eseguito. Ciò consente di apprendere sia il linguaggio SQL che qualsiasi dialetto SQL proprietario che possa essere utilizzato. Il pulsante [Commit] convalida la transazione corrente, mentre [Rollback] la annulla. In questo caso, la accettiamo cliccando su [Commit]. Una volta fatto ciò, IBExpert aggiunge la tabella creata alla nostra struttura ad albero del database:

Image

Facendo doppio clic sulla tabella, possiamo accedere alle sue proprietà:

Image

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

Image

Vediamo il vincolo di chiave primaria che abbiamo creato. Possiamo aggiungere altri vincoli:

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

Nota:

  • i campi [ID, PRICE, CURRENTSTOCK, MINIMUMSTOCK] devono essere >0
  • il campo [NAME] deve essere non vuoto e univoco

Aprire il pannello [Controlli] e fare 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 [NAME<>''] utilizza due virgolette singole, non doppie. Compilare questi vincoli utilizzando il pulsante [Compila] in alto:

Image

Ancora una volta, IBExpert dimostra la sua facilità d'uso visualizzando le query SQL che ha eseguito. Passiamo ora al pannello [Constraints/Unique] per specificare che il nome deve essere univoco:

Image

Definiamo il vincolo:

Image

Compiliamolo. Una volta fatto ciò, apriamo il pannello [DDL] per la tabella [ARTICLES]:

Image

Questo pannello mostra il codice SQL per generare la tabella con tutti i suoi vincoli. Puoi salvare questo codice in uno script per eseguirlo in un secondo momento:

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]. Per farlo, utilizzare il pannello [Dati]:

Image

I dati vengono inseriti facendo doppio clic sui campi di immissione di ciascuna riga della tabella. Una nuova riga viene aggiunta utilizzando il pulsante [+], mentre una riga viene eliminata utilizzando il pulsante [-]. Queste operazioni vengono eseguite all'interno di una transazione che viene confermata utilizzando il pulsante [Conferma transazione]. Senza questa conferma, i dati andranno persi.

IBExpert consente di eseguire query SQL tramite l'opzione [Strumenti/Editor SQL] o [F12]. Ciò consente di accedere a un editor avanzato di query SQL dove è possibile eseguire le query. Queste vengono salvate, quindi è possibile rivedere una query già eseguita. Ecco un esempio:

Image

Eseguiamo la query SQL utilizzando il pulsante [Execute] in alto. Otteniamo il seguente risultato:

Image

Concludiamo qui la nostra dimostrazione. 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] nella pagina dei download di [Firebird] (sezione 3.5) consente di scaricare un driver ODBC. Una volta installato, questo compare nell'elenco dei driver ODBC installati.

3.9. Creare un'origine dati ODBC

  • Avviare lo strumento [Start -> Impostazioni -> Strumento di configurazione -> Strumenti di amministrazione -> Origini dati ODBC]:

Image

  • Viene visualizzata la seguente finestra:

Image

  • Fare clic su [Aggiungi] per aggiungere una nuova origine dati di sistema (nel riquadro [DSN di sistema]) che assoceremo al database Firebird creato nella sezione precedente:

Image

  • Per prima cosa, dobbiamo specificare il driver ODBC da utilizzare. Sopra, selezioniamo il driver per Firebird e poi clicchiamo su [Fine]. 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 cosa
Database [D:\..\DBARTICLES.GDB]
il nome del database Firebird da utilizzare — utilizzare [Sfoglia] per selezionare il file .gbd corrispondente
Account database [SYSDBA]
il nome utente da utilizzare per connettersi al database
Password [masterkey]
la password associata a questo nome utente

Il pulsante [Verifica connessione] consente di verificare la validità delle informazioni inserite. Prima di utilizzarlo, avviare il DBMS [Firebird]:

Image

  • Confermare la procedura guidata ODBC facendo clic su [OK] tutte le volte necessarie

3.10. Verifica la sorgente ODBC

Esistono vari modi per verificare che una sorgente ODBC funzioni correttamente. In questo caso, useremo Excel:

Image

  • Utilizza l'opzione [Dati -> Dati esterni -> Crea query] sopra. Si aprirà la prima finestra della procedura guidata di definizione dell'origine dati. Il riquadro [Database] elenca le origini ODBC attualmente definite sul computer:

Image

  • Seleziona l'origine ODBC [odbc-firebird-articles] che abbiamo appena creato e passa al passaggio successivo facendo clic su [OK]:

Image

  • Questa finestra elenca le tabelle e le colonne disponibili nella sorgente ODBC. Selezioneremo l'intera tabella:

Image

  • Passare al passaggio successivo facendo clic su [Avanti]:

Image

  • Questo passaggio ci permette di filtrare i dati. In questo caso, non filtreremo nulla e passeremo al passaggio successivo:

Image

  • Questo passaggio ci permette di ordinare i dati. Non lo faremo e passeremo al passaggio successivo:

Image

  • L'ultimo passaggio ci chiede cosa vogliamo fare con i dati. Qui, li esportiamo in Excel:

Image

  • Qui, Excel ci chiede dove vogliamo 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 sorgente ODBC. Ad esempio, è possibile utilizzare la suite gratuita OpenOffice disponibile all'indirizzo [http://www.openoffice.org]. Ecco un esempio che utilizza OpenOffice:

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

Image

  • È predefinita una fonte di dati: la fonte [Bibliografia]. Facendo clic con il tasto destro del mouse sull'area delle fonti di dati è possibile crearne una nuova utilizzando l'opzione [Gestisci fonti di dati]:

Image

  • Una procedura guidata [Gestione delle origini dati] consente di creare origini dati. Facendo clic con il tasto destro del mouse sull'area delle origini dati è possibile crearne una nuova utilizzando l'opzione [Nuova origine dati]:

Image

Nome [odbc-firebird-articles]
Qualsiasi nome. Qui abbiamo utilizzato il nome della sorgente ODBC
Tipo DB [odbc]
OpenOffice supporta vari tipi di database tramite JDBC, ODBC o direttamente (MySQL, Dbase, ecc.). Per il nostro esempio, selezionare ODBC
URL della fonte dati
Il pulsante a destra del campo di immissione consente di accedere all'elenco delle origini ODBC presenti sul computer. Selezioniamo l'origine [odbc-firebird-articles]
  • Passiamo al pannello [ODBC] per definire l'utente con le cui credenziali verrà effettuata la connessione:

Image

Nome utente [sysdba]
Il proprietario della sorgente ODBC
  • Vai al pannello [Tabelle]. Ti verrà richiesta la password. In questo caso è [masterkey]:

Image

  • Fare clic su [OK]. Verrà quindi visualizzato l'elenco delle tabelle presenti nell'origine ODBC:

Image

  • È possibile selezionare le tabelle da visualizzare nel documento [OpenOffice]. In questo caso, selezioniamo la tabella [ARTICLES] e facciamo clic su [OK]. La definizione dell'origine dati è completa. Appare quindi nell'elenco delle origini dati per il documento attivo:

Image

  • È possibile trascinare la tabella [ARTICLES] dall'alto nel documento [OpenOffice] utilizzando il mouse:

Image

3.11. Stringa di connessione per una fonte ODBC Firebird

  • Avviare Visual Studio e aprire Server Explorer [Visualizza/Server Explorer]:
  • Fare clic con il pulsante destro del mouse su [Connessione dati] e selezionare l'opzione [Aggiungi connessione]:

Image

  • Nel pannello [Provider], specificare che si desidera utilizzare una sorgente ODBC (vedi sopra), quindi passare al pannello [Connessione]:

Image

Utilizza il nome della fonte dati
[demo-odbc-firebird]
Selezionare l'origine ODBC dal menu a discesa. Dovrebbe apparire quella appena creata. Se necessario, utilizzare [Aggiorna] per aggiornare l'elenco delle origini ODBC.
Nome utente [SYSDBA]
nome utente da utilizzare per connettersi al database
Password [masterkey]
La password associata a questo nome utente

Anche in questo caso, il pulsante [Verifica connessione] consente di verificare la validità delle informazioni:

Image

  • Confermare la procedura guidata facendo clic su [OK]. L'origine dati apparirà quindi nella finestra [Esplora server] in Visual Studio:

Image

  • Facendo doppio clic sulla tabella [ARTICLES], è possibile accedere 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 [Proprietà], è possibile accedere alle proprietà della connessione:

Image

  • La [ConnectString] è una proprietà importante da conoscere perché 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. Sarà sufficiente la seguente stringa di connessione:

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

Questo conclude la nostra panoramica sul driver ODBC [Firebird].

3.12. Dove si trova l' e MSDE?

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

Scarica il file di installazione, quindi installa il DBMS facendo doppio clic sull'eseguibile scaricato. Si aprirà una finestra in cui ti verrà richiesta la cartella di installazione. Il titolo è fuorviante. Si tratta di una cartella temporanea che potrà essere eliminata in seguito:

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

Parametro
Descrizione

SAPWD="StrongPassword"
Specifica una password complessa da assegnare all'account amministratore "sa".

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

Altri parametri spesso utilizzati per personalizzare un'installazione sono:

Parametro
Descrizione
DISABLENETWORKPROTOCOLS=n
Specifica se l'istanza accetterà connessioni di rete da applicazioni in esecuzione su altri computer. Per impostazione predefinita, o se si specifica DISABLENETWORKPROTOCOLS=1, il programma di installazione configura l'istanza in modo da rifiutare 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, il che significa che l'istanza supporta sia l'autenticazione Windows che l'autenticazione SQL per le connessioni

DATADIR="percorso_cartella_dati"
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 data_folder_path deve terminare con una barra rovesciata (\). Per un'istanza predefinita, il programma di installazione aggiunge MSSQL\ al valore specificato. Per un'istanza denominata, il programma di installazione aggiunge MSSQL$InstanceName\, dove InstanceName è il valore specificato tramite il parametro INSTANCENAME. Il programma di installazione crea tre cartelle nella posizione specificata: una cartella Data, una cartella Log e una cartella Script.

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

Dopo aver letto le raccomandazioni di installazione riportate sopra, accedere alla cartella in cui sono stati estratti i file di installazione e immettere il seguente comando DOS (utilizzando il DBMS senza una rete):

dos>setup INSTANCENAME="MSDE140405" SECURITYMODE=SQL SAPWD="azerty"
  • INSTANCENAME="MSDE140405" - questo sarà il nome della nostra istanza MSDE. È possibile installare più istanze.
  • SECURITYMODE=SQL - il DBMS funzionerà in modalità di autenticazione mista. Ciò consente di connettersi a MSDE in due modi:
    • con un account amministratore di Windows
    • con un account MSDE — in questo caso sono richiesti un nome utente e una password. Questa è la modalità da utilizzare in un programma che si connette a un database.
  • SAPWD="azerty" - questa sarà la password per l'utente [sa] del DBMS. L'utente [sa] dispone dei diritti di amministratore sul DBMS.

Per utilizzare il DBMS su una rete, è necessario eseguire il seguente comando:

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

Il programma di installazione è essenziale e si completa senza visualizzare alcun messaggio... Tuttavia, è possibile verificare che il DBMS sia stato installato tramite l'opzione [Menu Start -> Pannello di controllo -> Installazione applicazioni]:

Image

L'installazione viene normalmente eseguita in C:\Program Files\Microsoft SQL Server\MSSQL$instanceName:

Nella cartella [LOG] all'interno della directory di installazione, troverai il file di log relativo alla fase di installazione del DBMS. Esso contiene 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 perché tutti i client DBMS ne avranno bisogno. Se questi log mancano, è possibile trovare il nome di un server MSDE, che è [windows_machine\MSDE_instance_name]. Il nome del computer è disponibile in diversi punti. Ad esempio:

  • Fare clic con il pulsante destro del mouse su [Risorse del computer] sul desktop, selezionare [Proprietà], quindi la scheda [Nome computer]:

Image

Non sappiamo ancora come avviare il server MSDE. Normalmente è presente un collegamento in [Start/Avvio].

Image

Se si controllano le proprietà di questo collegamento, si noterà 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 sottocartelle:

Image

  • MSSQL$MSDE140405 è la cartella dell'istanza MSDE appena installata.
  • MSSQL è la cartella di un'istanza MSDE precedente. Poiché non ha un nome, la chiamiamo istanza predefinita.
  • La cartella [80] è una cartella condivisa per le varie istanze MSDE installate. Il percorso [sqlmangr.exe] del collegamento che avvia un'istanza MSDE si trova nella cartella [80\Tools\Binn].
Avviamo MSDE tramite il collegamento in [Start -> Programmi -> Avvio]. Non succede quasi nulla, tranne che appare un'icona nella barra delle applicazioni:
Fare doppio clic su questa icona:
Il server MSDE qui mostrato è il server predefinito
[PORTABLE1_TAHE] sul computer. Ricorda 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:

Possiamo eseguire un controllo iniziale. Nella stessa cartella di [sqlmangr.exe] è presente un client console [osql.exe] che consente di connettersi a un server MSDE ed eseguire comandi SQL. Durante l'installazione, abbiamo assegnato la password [azerty] all'amministratore [sa] del nostro server MSDE. Utilizzando il client da console, ci collegheremo al server appena installato. Se eseguiamo 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'host]
  [-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'echo]
  [-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'error]
  [-r msgs vers stderr]
  [-V severitylevel]
  [-i fichier d'entry]
  [-o fichier de sortie]
  [-p imprimer les statistiques]  [-b abandon du lot d'instruction after error]

  [-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'automatic console width scaling
      Messages larges
      niveau d'default error -1 instead of 1
  [-? description de la syntaxe]

Avviare il server [MSDE140405] come descritto sopra, quindi in una finestra del prompt dei comandi, utilizzare [osql] per connettersi 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 è stata stabilita con successo. Per utilizzare correttamente [osql], consultare la documentazione MSDE. È disponibile in vari formati (PDF, Guida in formato HTML, ecc.). Questa documentazione è piuttosto ampia. In genere, è preferibile utilizzare un client grafico per lavorare con un database MSDE. Questo è ciò che viene suggerito più avanti. Per uscire da [osql], utilizzare il comando [exit]:

1> exit

Vedremo ora come creare database sul server MSDE appena installato. Prima di ciò, presenteremo brevemente uno strumento chiamato [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 è impostata su [Autenticazione 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 desidera connettersi a un database per utilizzarne il contenuto, questa modalità è poco pratica. La situazione è ancora peggiore per le applicazioni Java che accedono al DBMS tramite un driver JDBC. In questi casi, è preferibile l'autenticazione mista, poiché accetta coppie nome utente/password definite nel DBMS oltre al metodo di autenticazione precedente. Lo strumento [MSDE Manager] consente di eseguire questa operazione.

3.13. Dove posso trovare MSDE Manager?

[MSDE Manager] è uno strumento di amministrazione per il DBMS MSDE. È disponibile all'URL [http://www.valesoftware.com/].

Scarichiamo la versione gratuita seguendo il link sopra indicato:

Image

Image

La versione di prova ha una durata limitata. Questo va bene poiché la useremo solo per un'unica attività specifica. Scaricare e installare il prodotto. Sul desktop verrà creata un'icona di collegamento. Usarla per avviare MSDE Manager. Dopo le finestre iniziali, si arriverà a questa:

Image

  • Avviare il server MSDE140405
  • È necessario aver effettuato l'accesso 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

Viene visualizzata la seguente pagina delle proprietà:

Nome server
portable1_tahe\msde140405 - nome dell'istanza MSDE a cui ci si vuole connettere
Connessione
Autenticazione Windows - questa modalità è sempre disponibile e consente all'amministratore di un computer Windows di connettersi al server MSDE
Gruppo di server
Selezionare l'unico gruppo di server elencato [Gruppo SQL Server]

Una volta fatto clic su [OK], viene visualizzata la struttura delle proprietà del server MSDE140405:

Image

Potremmo iniziare a creare database. Non lo faremo perché useremo un altro prodotto, un clone del prodotto IBExpert di cui abbiamo già parlato. Modificheremo semplicemente la modalità di autenticazione MSDE. Fare clic con il pulsante destro del mouse sul server MSDE140405 sopra e selezionare l'opzione [Design]:

Image

Viene visualizzata la seguente finestra informativa:

Image

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

Image

Qui, è necessario assicurarsi che la modalità di autenticazione MSDE sia impostata su [SQL Server e Windows]. Ciò consentirà di connettersi a MSDE in due modi:

  • con un account amministratore di Windows, come è stato fatto in questo caso
  • con un account MSDE — in questo caso sono richiesti un nome utente e una password. Questa è la modalità da utilizzare in un programma che si connette a un database DBMS.

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

3.14. Dove si trova EMS MS SQL Manager?

EMS MS SQL Manager è uno strumento grafico per lavorare con il DBMS Microsoft SQL Server e, di conseguenza, con MSDE. È molto simile allo strumento IB-Expert descritto in precedenza. È disponibile all'indirizzo [http://sqlmanager.net/] (aprile 2005):

Image

Il sito offre strumenti di amministrazione per molti DBMS. Seguire il link [MS SQL Manager]:

Image

Qui sopra, selezioniamo la versione leggera del prodotto. Scaricala e installala. Avrai una cartella simile alla seguente:

Image

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

Image

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

Image

Iniziamo registrando il server MSDE con cui vogliamo lavorare utilizzando l'opzione [Database/Register Host]:

Commenti:

  • Passaggio 1 - Come accennato, 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 DBMS. [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, tuttavia, non è sempre attiva. Abbiamo visto come abilitarla utilizzando MSDE Manager. In precedenza, la connessione è stata effettuata utilizzando un account amministratore.
  • Passaggio 2 - Una volta completata l'autenticazione, vengono visualizzati i database MSDE predefiniti. In precedenza, sono stati selezionati tutti.

Commenti:

  • Passaggio 3: È possibile selezionare le opzioni di amministrazione per i database selezionati. In questo caso, sono state mantenute le opzioni predefinite.
  • Passaggio 4: Registriamo il server MSDE utilizzando il pulsante [Registra]

Il server MSDE viene quindi visualizzato nell'esploratore dei database:

Image

Utilizziamo l'opzione [Database/Crea database] per creare un database:

Passaggio 2:

Quando viene visualizzata questa pagina informativa, il database [dbarticles] è stato creato. È possibile verificarlo facendo clic sul pulsante [Verifica connessione]. Nel campo [Alias database] è possibile inserire il nome desiderato. In questo caso, abbiamo inserito:

  • 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.

Passaggio 3:

  • Fare clic sul pulsante [Registra] per registrare il nuovo database in [MS SQL Server]. Dopo la registrazione, il database [admarticles] appare nell'elenco dei database. Facendo doppio clic su di esso viene visualizzata la struttura delle proprietà.

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

  • Selezionare l'opzione [Strumenti/Gestione account]:

Image

  • Possiamo vedere che sono già definiti due account:
    • [BUILTIN\Administrators]: questo account utilizza l'autenticazione Windows. Rappresenta gli amministratori del computer Windows su cui si trova il server MSDE
    • sa: questo account utilizza l'autenticazione SQL. Per impostazione predefinita, è l'amministratore del server MSDE. Si noti che qui, come configurato durante l'installazione del DBMS MSDE, la sua password è [azerty].
  • Fare clic con il pulsante destro del mouse sull'area degli accessi e aggiungere un nuovo accesso:
  • Viene visualizzato un modulo in cui definire le caratteristiche del nuovo accesso:

Image

  • Nome utente: admarticles
  • Password: mdparticles
  • Una volta cliccato il pulsante [OK], MS Manager visualizza le query SQL che eseguirà:

Image

Il linguaggio SQL mostrato sopra è Transact-SQL, il linguaggio SQL utilizzato da MSDE. Eseguiamo questo codice cliccando su [OK]

  • Il nuovo login viene aggiunto all'elenco dei login:

Image

  • Nella finestra delle proprietà del database [dbarticles], fare clic con il pulsante destro del mouse su [users] per creare un utente con autorizzazioni sul database [dbarticles]:

Image

  • Viene quindi visualizzata la seguente finestra:

Image

  • Nell'elenco a discesa [Login], vedrai l'elenco degli accessi esistenti. Seleziona l'accesso [admarticles].
  • In [Nome], inserisci un nome utente. È possibile associare più utenti allo stesso account. Inoltre, in MSDE, per creare un utente è necessario prima creare un account. Il pannello [Utente] ora appare così:

Image

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

Image

  • Non sono un utente abituale di MSDE e non sono sicuro del significato esatto di ciascuno dei ruoli elencati nel riquadro di sinistra. Il ruolo [db_owner] è allettante (owner = proprietario). Lo selezioneremo quindi per il nostro utente [admarticles]:

Image

  • Confermiamo le nostre selezioni cliccando sul pulsante [Compile] in alto. Le query SQL eseguite sono le seguenti:

Image

  • Le compiliamo cliccando su [OK]. Ora abbiamo un utente per il database [dbarticles]:

Image

  • Ora creiamo una tabella. Facciamo clic con il tasto destro del mouse su [Tables] e selezioniamo l'opzione [New Table]. Si aprirà la finestra di definizione delle proprietà della tabella:

Image

  • Iniziamo assegnando alla tabella il nome [ARTICLES] utilizzando il campo di immissione [Nome tabella]. Successivamente, passare al pannello [Campi]:

Image

  • definire i seguenti campi:

Image

Finché non avremo "compilato" la nostra definizione, la tabella non verrà creata. Utilizza il pulsante [Compila] in alto per finalizzare la definizione della tabella. [MS SQL Manager] prepara le query SQL per generare la tabella e chiede 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] convalida la transazione corrente, mentre [Rollback] la annulla. In questo caso, la accettiamo facendo clic su [Commit]. Una volta fatto ciò, [MS SQL Manager] aggiunge la tabella creata alla nostra struttura ad albero del database:

Image

Facendo doppio clic sulla tabella, possiamo accedere 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, PRICE, CURRENTSTOCK, MINIMUMSTOCK] devono essere >=0
  • il campo [NAME] non deve essere vuoto

Nel pannello [Controlli], fare clic con il tasto destro del mouse sull'area vuota per aggiungere un nuovo vincolo [Nuovo controllo]:

Image

  • La finestra di modifica del vincolo ha questo aspetto:

Image

Nome: nome del vincolo

Tabella: tabella a cui si applica il vincolo

Definizione: espressione del vincolo

Il vincolo viene compilato utilizzando il pulsante [Compila] in alto.

  • Ancora una volta, [MS SQL Manager] visualizza i comandi SQL eseguiti:

Image

  • Li convalidiamo utilizzando il pulsante [Commit] (non mostrato). Se torniamo al pannello [Checks] per la tabella [ARTICLES], appare il nuovo vincolo:

Image

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

Image

Una volta fatto ciò, apri il pannello [DDL] della tabella [ARTICLES]:

Image

Questo pannello mostra il codice Transact-SQL per la creazione della tabella con tutti i suoi vincoli. È possibile salvare questo codice in uno script per eseguirlo 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]. Per farlo, utilizza il pannello [Data]:

Image

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

Image

Creiamo due voci:

Image

[MS SQL Manager] consente di eseguire query SQL tramite l'opzione [Strumenti/Mostra editor SQL] o il tasto [F12]. In questo modo si accede a un editor avanzato di query SQL in cui è possibile eseguire le query. Le query vengono salvate, quindi è possibile rivedere una query già eseguita. Ecco un esempio:

Image

Esegui la query SQL utilizzando il pulsante [Esegui] in alto. Otterrai il seguente risultato:

Image

Concludiamo qui la nostra dimostrazione. La combinazione [MS SQL Manager - MSDE], proprio come quella [IBExpert - Firebird], è ottima per imparare a conoscere i database.

3.15. Creazione di una sorgente ODBC [MSDE]

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

  • Avviare lo strumento [Start -> Impostazioni -> Strumenti di configurazione -> Strumenti di amministrazione -> Origini dati ODBC]:

Image

  • Viene visualizzata la seguente finestra:

Image

  • Fare clic su [Aggiungi] per aggiungere una nuova origine dati di sistema (nel riquadro [DSN di sistema]) che assoceremo al database MSDE creato nella sezione precedente:

Image

  • Per prima cosa, dobbiamo specificare il driver ODBC da utilizzare. Sopra, selezioniamo il driver per [SQL Server] e poi facciamo clic su [Fine]. A questo punto subentra la procedura guidata del driver ODBC [SQL Server]:

Image

  • Compiliamo i vari campi:
Nome [odbc-msde-articles]
il nome della sorgente ODBC: può essere qualsiasi cosa
Descrizione
può essere qualsiasi cosa
SQLMap Server
portable_tahe\msde140405
Nome del server MSDE contenente i dati di origine ODBC
  • Fare clic su [Avanti] per fornire ulteriori informazioni:

Image

  • Compilare i vari campi:
Autenticazione SQL Server
Specificare che ci si connetterà all'origine dati ODBC utilizzando un nome utente registrato sul server MSDE
ID di accesso [admarticles]
Login utente
Password [mdparticles]
Password utente
  • Si noti che questa è la prima volta che utilizziamo l'utente (admarticles, mdparticles) creato in una sezione precedente. Fare nuovamente clic su [Avanti] per passare alla schermata successiva:

Image

  • Compiliamo i vari campi:
Modifica database...
Selezioniamo il database [dbarticles] come database predefinito per l'utente [admarticles]
  • Fare clic su [Avanti] per passare alla schermata successiva:

Image

  • Accettiamo i valori predefiniti e facciamo clic su [Fine]. Viene visualizzato un riepilogo delle caratteristiche della sorgente ODBC che verrà creata:

Image

  • Il pulsante [Verifica origine dati] ci permette di verificare la validità delle nostre informazioni. Verifica che MSDE sia in esecuzione, quindi prova la connessione:

Image

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

Per ulteriori test, il lettore può seguire la procedura illustrata nella sezione 3.10.

3.16. Stringa di connessione a un database MSDE

  • Avviare Visual Studio e aprire Server Explorer [Visualizza/Server Explorer]:
  • Fare clic con il pulsante destro del mouse su [Connessione dati] e selezionare l'opzione [Aggiungi connessione]:

Image

  • Nel riquadro [Provider], specificare che si desidera utilizzare un'origine SQL Server, quindi passare al riquadro [Connessione]. Si noti che in questo caso non si utilizza un driver ODBC.

Image

Nome server
[portable1_tahe\msde140405]
Nome del server MSDE a cui ti stai connettendo
Nome utente [admarticles]
nome utente da utilizzare per connettersi al database
Password [mdparticles]
la password associata a questo nome utente
Database [dbarticles]
Il database con cui desideri lavorare

Il pulsante [Verifica connessione] consente di verificare la validità delle informazioni:

Image

  • Conferma la procedura guidata cliccando su [OK]. Curiosamente, una nuova finestra richiede i dettagli di connessione:

Image

  • inseriscili nuovamente e clicca su [OK]. L'origine dati apparirà quindi nella finestra [Esplora server] in Visual Studio:

Image

  • facendo doppio clic sulla tabella [ARTICLES], è possibile accedere ai dati della tabella:

Image

  • Se si fa clic con il pulsante destro del mouse sul collegamento [portable1_tahe\msde140405.dbarticles.admarticles] nel riquadro [Esplora server] e si seleziona l'opzione [Proprietà], è possibile visualizzare le proprietà della connessione:

Image

  • La proprietà [ConnectString] è importante da conoscere perché 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. Sarà sufficiente 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"