Connessione amysql

lunedì 15 maggio 2006 - 11.39

ile73 Profilo | Newbie

Ciao a tutti, avrei bisogno di un consiglio.
Devo connettermi ad un db che per ora è crato in Mysql ma potrebbe essere ch ein futuro diventi anche un db in oracle o altro.
Vorrei utilizzare quindi un metodo piu indolore ai vari cambiamenti, pero anche veloce
Avevo pensato a Odbc o ad oledb ma , leggendo vari articoli, ho capito che a livello restazioneale sicuramente sarebbe piu veloce utilizzare direttament eil Net Provider per Mysql.(potre fareuna classe che a seconda del tipo di db utilizza un provider o l'altro 8per esempio per oracle utilizzerebbe la classe di oracle)
Cosa ne pensate?
E se invece utilizzassi Oledb sarebbe comunque veloce considerando una grade mole di dati?
grazie
Ile

alx_81 Profilo | Guru

Ciao
Potresti usare l'interfaccia IDBConnection e discriminare in base al tipo di database..
Alx81 =)

http://blogs.dotnethell.it/suxstellino

ile73 Profilo | Newbie

mi potresti fare un esempio di codice? non l'ho mai utilizzato..

alx_81 Profilo | Guru

appena riesco ti passo qualcosa..
Alx81 =)

http://blogs.dotnethell.it/suxstellino

alx_81 Profilo | Guru

Eccoti la classe passatami dal mio collega Luca =)
Ha un metodo pubblico NuovaConnessione al quale passi il tipo della connessione da creare e ti torna un IDBConnection con all'interno le configurazioni di connessione per il provider scelto..
tutto qui..
se ti serve in c#, la traduzione spetta a te =)
ciao!

Class DBConnector
Enum TipiConnessione As Byte
SQLClient = 1
OLEDBClient
ODBCClient
End Enum

Private Shared _stringaconnessione As String
Private Shared _tipoconnessione As TipiConnessione

Shared Sub New()
'imposta tu i parametri di connessione
_stringaconnessione = "..."
End Sub

Public Function NuovaConnessione(TipoConn as TipiConnessione) As IDbConnection
Select Case TipoConn
Case TipiConnessione.SQLClient
Dim conn As New SqlClient.SqlConnection(_stringaconnessione)
conn.Open()
Return conn
Case TipiConnessione.OLEDBClient
Dim conn As New OleDb.OleDbConnection(_stringaconnessione)
conn.Open()
Return conn
Case TipiConnessione.ODBCClient
Dim conn As New System.Data.Odbc.OdbcConnection(_stringaconnessione)
conn.Open()
Return conn
Case Else
'Solleva l'eccezione che vuoi
End Select
End Function

Public Sub RilasciaConnessione(ByVal Connessione As IDbConnection)
If Not Connessione Is Nothing Then
If Connessione.State = ConnectionState.Open Then Connessione.Close()
Connessione = Nothing
End If
End Sub
End Class
Alx81 =)

http://blogs.dotnethell.it/suxstellino

ile73 Profilo | Newbie

ok grazie 1000!

alx_81 Profilo | Guru

Fammi sapere se sei riuscito.. ok?
Alx81 =)

http://blogs.dotnethell.it/suxstellino

ile73 Profilo | Newbie

si, l'unico dubbio è questo
Enum TipiConnessione As Byte
SQLClient = 1
OLEDBClient
ODBCClient
End Enum

ma in OLEDBClient e ODBCClient devo metterci dei valori?

alx_81 Profilo | Guru

se vuoi sì, ma l'enumeratore ha il seguente comportamento:

Public Enum Prove As Byte 'solo numerici
VAL1 [= n]
VAL2 [= n]
VAL3 [= n]
End Enum

se non indichi n il primo valore parte da 0, altrimenti parte dalla n che hai stabilito tu, incrementando di uno per ogni chiave.. a meno che tu non indichi una n per ogni valore (e puoi farlo)..
Alx81 =)

http://blogs.dotnethell.it/suxstellino
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5