Le avventure in VB.Net di un principiante ex-VB6 - 5
a cura di Oscar Zanin e Diego Cattaruzza (requisiti: Visual Basic Express e SqlServer Express< )

Premessa
Il primo componente che dovremmo sviluppare è la form di impostazione dei parametri di connessione al database. Questo implica che esista una istanza correttamente configurata di SqlServer Express 2008 (o 2005) e un utente con i permessi di accesso al database.

L'installazione di SqlServer Express 2008 è resa particolarmente complessa a causa di varie evenienze e situazioni (dalle versioni di Visual Studio a quelle dell'installatore stesso). Di questa complessità sono stati vittime, oltre a noi, diversi lettori di questa serie di articoli. Per cui si ritiene opportuno descriverla, onde evitare ulteriori tribolazioni.

([Diego] nota: eventuali errori in questo articolo sono da imputare solo a Diego. Le immagini hanno varia provenienza: quelle 'blu' da Oscar (lingua italiana), quelle 'verdi' da Diego (lingua inglese). Sono tutte tagliate in modo da lasciare visibile solo la parte che serve, per non appesantire il caricamento della pagina)

Installazione meno tribolata di SqlServer Express 2008
Innanzitutto, il collegamento 'giusto'. Poiché ci serve anche il Management Studio e altri strumenti, conviene scaricare il tutto in un unico pacchetto, da questo indirizzo: Microsoft® SQL Server® 2008 Express with Tools.
In questa pagina trovate anche i collegamenti a quanto è richiesto per l'installazione e il funzionamento di SqlServer 2008, già indicati nel primo articolo di questa serie.
([Diego] preferisce sempre installare le versioni in inglese, invece di quelle localizzate in italiano).

  1. Una volta avviato SQLserverEXPRessWithTools.exe, accederete al Centro installazione Sql Server:

    Fare clic su Installazione.

  2. Fare clic su Nuova installazione autonoma di Sql Server...
  3. Verrà fatto un controllo sugli eventuali problemi che potrebbero verificarsi durante l'installazione dei file di supporto all'installazione di Sql Server. Nel caso ce ne fossero, viene indicata la soluzione. Bisogna risolvere e rieseguire il controllo facendo clic sul pulsante Riesegui.

    Quando va tutto bene si fa clic sul pulsante OK.
  4. Si giunge alla fase Product Key. Trattandosi di una versione Express, non c'è alcun codice da fornire e si fa clic su Avanti.
  5. Si accettano le condizioni di licenza e si fa clic su Avanti.

  6. Si fa clic su Installa
  7. Viene fatto un altro controllo identico al precedente, al termine del quale si fa clic su Avanti
  8. Viene presentata la scelta dei componenti da installare

    Si fa clic su Seleziona tutto e poi su Avanti
  9. Nella finestra Configurazione dell'istanza si lasciano le impostazioni di default

    e si fa clic su Avanti
  10. Viene presentato il riepilogo relativo allo spazio su disco richiesto e disponibile. Si fa clic su Avanti
  11. Si arriva alla finestra più importante, la finestra Configurazione Server.

    1. Per il servizio Sql Server Database Engine abbiamo scelto l'account NT Authority\System(privo di password)

    2. Si fa clic su Utilizzare lo stesso account per tutti i servizi di Sql Server
    3. Viene presentato un dialogo di richiesta utente e password
      Si sceglie sempre NT Authority\System (senza alcuna password) e si dà l’ok.
    4. Per il servizio Sql Server Browser abbiamo scelto l'account NT Authority\Local System (privo di password)

      Quindi si fa clic su Avanti
  12. Nella finestra Configurazione del Motore di database scegliamo la Modalità mista e impostiamo una password a nostro piacere (annotiamocela perché servirà in seguito)

  13. Poiché dovremo poter accedere al database come amministratori, anche con il 'nostro' account, facciamo clic anche su Aggiungi utente corrente (il risultato è un account nella forma 'nomedelpc\nomeutente', a esempio: pccasa\cattaruzza)
    Si fa clic su Avanti
  14. Viene effettuato un controllo Regole di installazione per determinare se il processo di installazione verrà bloccato.
    • a noi è successo che venivano rilevate versioni precedenti di Visual Studio 2008.
      Precisamente, mancava l'installazione del Service Pack 1
    • Se si hanno versioni Express, bisogna disinstallarle e reinstallarle tutte una a una, ciascuna col suo SP1, senza (sottolineo: senza) installare Sql Server Express come proposto dai vari Setup.
    • Effettuata l'operazione di scarico e installazione, si fa clic sul pulsante Riesegui
    Quindi si fa clic su Avanti
  15. Si giunge finalmente alla finestra Inizio installazione, dove si fa clic su Installa
  16. Dopo di che, nella finestra Stato dell'installazione, si fa clic su Avanti
  17. Veniamo informati che l'operazione è completata e si fa clic su Chiudi

Completiamo la configurazione

  1. Apriamo SQL Server Configuration Manager

    Abilitiamo il protocollo TCP/IP
  2. Interrompiamo e riavviamo i servizi SQL Server e SQL Server Browser

Verifica con Sql Server Management Studio
Apriamo Sql Server Management Studio. Ci viene presentato un dialogo di Login.

  1. La casella Nome server è vuota. Se facciamo clic sulla freccetta a lato, ci viene presentata la lista dei server locali tra cui scegliamo l'unico che c'è

  2. Scegliamo l'Autenticazione di Sql Server, l'utente sa (sqlserver administrator) e digitiamo la password che avevamo precedentemente impostato e annotato

  3. Facciamo clic su Connect

Spostamento dei database
I dati dell'applicazione, secondo regola, devono stare in una apposita sottocartella nella zona 'documenti', e non nella stessa zona 'programmi' del programma. Per capirci meglio, devono trovarsi in My.Computer.FileSystem.SpecialDirectories.AllUsersApplicationData e non in My.Computer.FileSystem.SpecialDirectories.Programs o My.Computer.FileSystem.SpecialDirectories.ProgramFiles.

Troviamo quindi questa cartella. Se non si è sicuri di individuarla, si faccia una banale prova nel codice per l'evento Load della FrmMain del nostro progetto:

  Private Sub FrmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Debug.Print(My.Computer.FileSystem.SpecialDirectories.AllUsersApplicationData)
    Stop
  End Sub

Per Diego, il risultato è stato questo:
C:\Documents and Settings\All Users\Dati applicazioni\CDSoft\GesImp\1.0.0.0
Copiamo il risultato e incolliamolo nella barra indirizzo di Esplora Risorse. Risaliamo lungo l'albero alla cartella precedente (...\GesImp) e creiamo una nuova cartella di nome Data.

Copiamo i file attualmente presenti nella sottocartella Risorse del progetto (APP-P.mdf e APP-P_log.ldf) nella nuova cartella.

Nella finestra di Sql Server Management Studio, se è già presente il database APP-P, cancelliamolo ('clic destro' sul suo nome).
Fatto clic col pulsante destro del mouse su Databases, alleghiamo il file APP-P.mdf posto nella nuova cartella appena creata.

Creazione di un nuovo utente per il nostro database
Espandiamo, in Sql Server Management Studio, il nodo Protezione (Security), facciamo 'clic destro' sul nodo Account di accesso (Logins) e scegliamo il menu Nuovo Account di accesso(New...)

  1. Impostiamo il nome utente programmi, l'autenticazione Sql Server, una password (annotiamocela), lasciamo spuntata la casella Applica criterio password (Enforce password policy) e togliamo la spunta alla casella Imponi scadenza password (Enforce password expiration). Non cliccate ancora su OK.
  2. Clic sul nodo Ruoli del server (Server Roles). Assicuriamoci che sia spuntata solo la casella public
  3. Clic sul nodo Mapping utenti (User Mapping). Selezioniamo solo il database APP-P e impostiamo i ruoli db_owner e public

  4. Clic sul nodo Entità a protezione diretta (Securables). Non c'è alcunché da impostare: dovreste vederlo 'vuoto'
  5. Clic sul nodo Stato (Status). Dovrebbero già essere impostati Concedi (Grant) e Abilitato(Enabled)
  6. Facciamo clic su OK. Il nuovo utente è stato creato

Conclusione
A questo punto siamo pronti per creare il nostro primo componente, la form di impostazione dei parametri di connessione al database, che costituisce l'argomento della prossima puntata.