Configurare SQL Server 2005Express per consentire le connessioni remote

Dato che per me è stato un calvario capire come configurare SQLExpress per essere connesso da remoto, una volta riuscito ho deciso di scrivermi l'appunto. Poi ho pensato: perchè non renderlo pubblico a tutti?

Ecco come ho fatto:

Dopo aver installato SQL2005Express (d'ora in poi chiamerò SQLE) e il MANAGER di SQLExpress, ho provato se localmente si connetteva.

A me s'è connesso subito senza preblemi.

 

Sono andato sulla macchina remota e ho inserito questi dati nel Manager di SQL:

Tipo Server: Motore di database
Nome Server: Server\SQLEXPRESS
Autenticazione: Autenticazione di SQL Server
Nome Account di access: sa
Password: mia pass

Per chi non lo sapesse "sa" è l'utente principale di SQL (Così ho capito, ma forse sbaglio).

Il nome "SERVER\SQLEXPRESS" è il server dove si trova SQL con il nome dell'istanza SQL. (forse sbaglio col nome "istanza").

Faccio Connetti e nulla: un errore enorme lungo un km....

Vado sul PC server e faccio partire il programma "SQL Server Configuration Manager".

Vado nelle configurazione di rete SQL Server 2005 e attivo solo il Protocollo TCP/IP, imposto dalle proprietà l'attivazione dell'IP1.

Per defaul dopo l'istallazione, SQL non avvia SQL Browser ma per le connessioni remote  bisogna attivarlo.
Per fare questo uso l'utiliti "Configurazione superfice di attacco di SQL Server":

  • Selezionare "Configurazione superficie di attacco per servizi e connessioni"
  • Selezionare il componente "SQL Server Browser" ed impostare "tipo di avvio" su "Automatico"
  • Riavviare il PC e vi troverete SQL Server Browser avviato (potete controllare da "SQL Server Configuration Manager".

Per ultimo vado nel Firewall di Windows e metto i due programmi nelle eccezioni, rispettivamente:

C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe

C:\Program Files\Microsoft SQLServer\90\Shared\sqlbrowser.exe

Vado dal PC Remoto e tutto funziona..

Grazie a tutti.

Attivare SilverLight su IIS

Dopo innumerevoli guide dall'amico Alessandro del Sole sul fantastisco mondo di SilverLight, mi sono messo a fare qualche scherzetto con il programma Deep Zoom Composer, sempre consigliato da Alessandro D. S. .

Premetto che ho alcuni domini registrati su vari Server tra cuoi uno (il mio: panatronic.it) su un mio server con Win2003 e IIS.

ho fatto una piccola gallery e l'ho uplodata sul mio stazio web del mio dominio. ho messo tutta la cartella che Deep Zoom Composer mi crea nell'esportazione e precisamente il contenuto della cartella "DeepZoomProjectWeb".

sui server di aziende importanti (non cito per non fare pubblicità) funziona tutto ok ma sul mio no.

A questo punto decido di risolvere il problema sul server: prima cosa installo .Net 3.5 sul server. Per l'installazione nessun problema tranne che un avviso di protezione sull'aggiornamento di alcuni file che dal titolo dell'avviso (Library C++) ritengo sia un aggiornamento di librerie c++ di sistema; non potevo far altro che OK ed ho continuato.

Dopo questa installazione ho provato ma nulla. Ancora non funzionava. Allora ho provato ad installare i runtime di SilverLight andando via web in quella pagina pubblicata della gallery direttamnte dal server e dato che non c'era ancora installato i runtime di SL, ho ricevuto l'avviso d'installazione. Faccio l'installazione ma nulla.

A questo punto chiedo nel nostro forum "Argomenti Vari" e subito l'amico Alessandro D. S. mi suggerisce di installare il .Net 3.5 e i runtime di SilverLight che avevo precedentemente fatto.

Effettivamente non pensavo fosse un problema di runtime e vado a vedere che errore mi da nella pagina: l'errore specificava che si trattava di settaggio del server Web, quindi IIS.

Dato che tra le varie prove ho impostato la cartella contenente la gallery con tutti i permessi di tutto, sicuramente era un settaggio legato proprio tra IIS e SL.

facendo un poco di ricerche sul web con l'amico google incappo in un documento di una nota azienda che da servizio hosting che parla di estensioni MIME abilitate sui suoi server win2003. Tra le estensioni elencate si trovava l'estensione .xap che si riferisce ad applicazioni SilverLight.

A questo punto vado sulle proprietà del sito web in IIS e precisamente nel menù HTTPHeaders -> MIME types ed aggiungo questa types:
Estensione: .xap
Types: application/x-silverlight-app.

Faccio la prova e funziona perfettamente.
Ora non so se installando solo il .Net 3.5 o solo il runtime di SL e poi impostando questa opzione sarebbe andato bene comunque.
Magari in un'altra situazione farò queste prove. Comunque su questo Server mi servirà prima o poi il .Net 3.5, quindi meglio così.

è vero: volete vedere la gallery? è la gallery che vi ha già mostrato l'amico Marco Chillemi della sua piccola vacanza nel Salento: Gallery Salento . Attendo Voi per le prossime Gallery.

I Parametri "Table-Valued" di SQLServer 2008

I Parametri "Table-Valued" sono stati introdotti con SQL Server 2008 (sotto sugerimento di Luca Bianchi) e ci permettono di inviare un intera DataTable ad una istruzione T-SQL o Routine senza creare nessuna tabella temporanea o altro del genere.

Per poter inviare l'intera DataTable ho fatto una semplice SP che riceve da una Select i dati dal parametro Table-Value e lo inserisce "INSERT" nella tabella desiderata.

Ecco come ho fatto:

Partiamo da VB e dalla creazione della DataTable.

   1:   Dim dtTable As New DataTable
   2:   Dim col As DataColumn
   3:  col = New DataColumn("ID", GetType(Int32))
   4:  dtTable.Columns.Add(col)
   5:  col = New DataColumn("Descrizione", GetType(String))
   6:  dtTable.Columns.Add(col)

ora inserieamo alcuni dati nella DataTable:

   1:  Dim printRow As DataRow = dtTable.NewRow
   2:  printRow("ID") = 1
   3:  printRow("Descrizione") = "Patate di stagione"
   4:  dtTable.Rows.Add(printRow)
   5:  printRow("ID") = 2
   6:  printRow("Descrizione") = "Arance Siciliane"
   7:  dtTable.Rows.Add(printRow)
   8:  printRow("ID") = 3
   9:  printRow("Descrizione") = "Mele di stagione"
  10:  dtTable.Rows.Add(printRow)

 

Ora andiamo su SQL con il Manageri di SQL2008 e creamo un Type personalizzato di tipo Table-Value:

   1:  CREATE TYPE dbo.TTableType AS TABLE
   2:      ( ID int, Descrizione nvarchar(Max) )
 
Ora creamo la Stored Procedure con il parametro di tipo Table-Value appena creato:
   1:  create PROCEDURE [dbo].[SpInTable] 
   2:  (@Tab dbo.TTableType readonly ) 
   3:   
   4:  AS 
   5:   
   6:  BEGIN TRAN 
   7:  SET NOCOUNT OFF; 
   8:   
   9:  INSERT INTO 
  10:  [intec].[dbo].[TabMia] (ID, Descrizione )
  11:      SELECT ID, Descrizione FROM @Tab;
  12:   
  13:  COMMIT TRAN 
Perfetto. Ora non ci rimane altro che trasmettere la DataTable alla Stored Procedure dal nostro progetto VB:
   1:  Dim insertSpInTable As New SqlCommand("SpInTable", CnnS)
   2:  insertSpInTable.CommandType = CommandType.StoredProcedure
   3:  Dim ParamT As SqlParameter = insertSpInTable.Parameters.AddWithValue("@Tab", SqlDbType.Structured)
   4:  ParamT.SqlDbType = SqlDbType.Structured
   5:  ParamT.TypeName = "dbo.TTableType"
   6:  ParamT.Value = dtFR
   7:  insertSpInTable.ExecuteNonQuery()

Eccolo qui. Abbiamo passato un intera DataTable in una tabella SQL senza fare nessun ciclo come per esempio facevamo con VB6 e Access. Veramente molto veloce e preciso con una transazione sola. Questo potrebbe essere comodo per inserire, ad esmpio, i dettagli di una fattura, DTT o altro.
Spero che vi potrà essere utile nei vostri progetti altrimenti scusate per la noia arrecatovi. :-) :-)