Fabio Cirillo's Blog


The world of the programming
Statistiche
  • Views Home Page: 42.287
  • Views Posts: 72.614
  • Views Gallerie: 823
  • n° Posts: 24
  • n° Commenti: 11
Archivio Posts
Anno 2007

Anno 2006

Realizzare una connessione DSN di sistema con .NET

Tra le varie procedure di connessione ad un Database esiste la connessione tramite DSN o meglio Data Source Name.
In .Net si possono realizzare connessioni DSN di sistema con notevole semplicità ovviamente sfruttando il driver ODBC.(consiglio la vers. 3.51) e, tramite l'uso di un' API di Windows.

In questo esempio vi farò vedere com'è possibile realizzare direttamente da una WinForm una connessione Dsn:

Innanzitutto construiamo una form come da figura:





Una volta terminata la realizzazione della form con i relativi campi necessari per l'input dei dati andiamo a dichiarare in un modulo l'APi di windows ed alcune constanti indispensabili per la creazione del Dsn:

Listato n°1

Module Module1
Public Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" (ByVal hwndParent As Integer, ByVal fRequest As Short, ByVal lpszDriver As String, ByVal lpszAttributes As String) As Integer
Public Declare Function SQLCreateDataSource Lib "ODBCCP32.DLL" (ByVal hwndParent As Integer, ByVal lpszDSN As String) As Integer

Public Const ODBC_ADD_DSN As Short = 1
Public Const ODBC_ADD_SYS_DSN As Short = 4
End Module

Fatto questo possiamo scrivere il seguente codice all'interno del pulsante "Conferma attivazione":

Listato n°2

Private Sub Conferma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Conferma.Click

Dim odbcs As String
Dim RISULTATO As Integer

If WizardCheck.CheckState = System.Windows.Forms.CheckState.Checked Then
odbcs = NomeDSN.Text
RISULTATO = SQLCreateDataSource(Me.Handle.ToInt32, odbcs)
Else
odbcs = "DSN=" + NomeDSN.Text + ";"
odbcs = odbcs + "DBQ=" + PathDB.Text + ";"
odbcs = odbcs + "DESCRIPTION=" + Descrizione.Text +";"
odbcs = odbcs + "UID=" + Utente.Text +";"
odbcs = odbcs + "PWD=" + Password.Text +";"
odbcs = odbcs + "DATABASE=" + DatabasePred.Text +";"
odbcs = odbcs + vbNullChar
If _TipoDSN_1.Checked = True Then
RISULTATO = SQLConfigDataSource(0, ODBC_ADD_SYS_DSN, NomeDriver.Text, odbcs)
End If
End If

If RISULTATO <> 0 Then
MsgBox("Creazione DSN riuscita con successo")
Else
MsgBox("Creazione DSN fallita?)
Me.Close()
End If
End Sub

Se la creazione manuale del DSN è troppo complicata, potrete anche avviare lo Wizard (interfaccia guidata) ma saranno necessarie alcune righe aggiuntive di codice:

Listato n°3

Private Sub WizardCheck_CheckStateChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles WizardCheck.CheckStateChanged
Dim STATO As Boolean
STATO = (WizardCheck.CheckState = System.Windows.Forms.CheckState.Unchecked)
ParametriFrame.Enabled = STATO
NomeDriverLabel.Enabled = STATO
NomeDriver.Enabled = STATO
PathDBLabel.Enabled = STATO
PathDB.Enabled = STATO
DescrizioneLabel.Enabled = STATO
Descrizione.Enabled = STATO
UtenteLabel.Enabled = STATO
Utente.Enabled = STATO
PasswordLabel.Enabled = STATO
Password.Enabled = STATO
DatabasePredLabel.Enabled = STATO
DatabasePred.Enabled = STATO
_TipoDSN_1.Enabled = STATO
End Sub

Lanciando la nostra applicazione d'esempio e compilando i campi con i relativi dati ,se la procedura verrà eseguita correttamente un messaggio lo confermerà.
Una prova del nove potrete farla verificando dal pannello di controllo l'effettiva creazione del Dsn di sistema
Categoria: .NET
martedì, 21 feb 2006 Ore. 02.47
Sondaggio
Quanto vi è stato utile questo blog?

Moltissimo
Molto
Normale
Poco
Nulla

Calendario
aprile 2024
lmmgvsd
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345
Ora e Data
Mappa
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003