IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Connexion
        Peut-on récupérer le paramétrage complet d'une connexion ?
        Qu'est ce que le regroupement de connexion ?
        J'ai une erreur lors de la connexion à une base Access protégée par mot de passe ?
        Comment définir une connexion ?



Peut-on récupérer le paramétrage complet d'une connexion ?
auteur : Jean-Marc Rabilloud
On ne peut pas le faire simplement sur l'objet connexion. Il est par contre possible d'utiliser un objet ConnectionStringBuilder en jouant sur la notion de paires clés valeur qui le compose. Par exemple :

Dim MaConnSB As New SqlClient.SqlConnectionStringBuilder("Data Source=ISPCF261025\SQLEXPRESS" & _
";Initial Catalog=pubs;Integrated Security=True")
Dim MaColl As Collections.ICollection = MaConnSB.Keys
For Each Elem As String In MaColl
    Me.TextBox1.Text += Elem + " => " + MaConnSB.Item(Elem).ToString + vbCrLf
Next

Qu'est ce que le regroupement de connexion ?
auteur : Jean-Marc Rabilloud
Le mécanisme de regroupement (Connection Pooling) n'est pas à proprement parler une fonctionnalités ADO.NET mais plutôt une fonctionnalité fournit par le fournisseur du SGBD. Dans le principe, il s'agit d'une fermeture différée des connexions libérées afin d'augmenter les performances des applications nécessitant de nombreuses opérations d'ouverture/fermeture sur des connexions.

Le regroupement peut être configuré par le biais de la chaîne de connexion à l'aide des paramètres suivants :

Nom Valeur par défaut Description
Connection Lifetime 0 Lorsqu'une connexion est retournée au pool, l'heure de sa création est comparée à l'heure actuelle et la connexion est détruite si cet intervalle de temps (en secondes) excède la valeur spécifiée par Connection Lifetime. Ceci est utile dans les configurations en clusters pour forcer l'équilibrage de la charge entre un serveur en cours d'exécution et un serveur qui vient d'être mis en ligne. La valeur zéro (0) aura pour conséquence un délai d'attente maximal pour les connexions regroupées.
Connection Reset true Détermine si la connexion de base de données est réinitialisée lorsqu'elle est supprimée du pool. Pour Microsoft SQL Server version 7.0, False évite un aller-retour supplémentaire du serveur lors de l'établissement d'une connexion, mais vous devez savoir que l'état de connexion, comme le contexte de base de données, n'est pas réinitialisé.
Enlist true Si la valeur est True, le dispositif de regroupement inscrit automatiquement la connexion dans le contexte de transaction en cours du thread de création si un contexte de transaction existe.
Max Pool Size 100 Nombre maximal de connexions autorisées dans le pool.
Min Pool Size 0 Nombre minimal de connexions conservées dans le pool.
Pooling true Si la valeur est True, la connexion est retirée du pool approprié ou, si nécessaire, créée et ajoutée au pool approprié.
Connexion pooling
Sauf cas particulier on ne définit que le nombre maximum de connexions dans le pool. Notez qu'OLEDB gère un système à peu près identique à l'aide du regroupement de ressource par le biais des services OLEDB.


J'ai une erreur lors de la connexion à une base Access protégée par mot de passe ?
auteur : Jean-Marc Rabilloud
Le système de protection d'Access est un peu différent de celui de la plupart des SGBDR. En fait, Access gère soit la sécurité au niveau utilisateur à l'aide d'un fichier de sécurité externe (*.mdw) soit le verrouillage du fichier par un mot de passe.

La chaîne Access suivante va déclencher une erreur sur une base protégée par mot de passe.

Dim MaConn As OleDb.OleDbConnection
Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\User\bib2000.mdb;" & _
"User Id=admin ;Password=password;"
MaConn = New OleDb.OleDbConnection(strConn)
MaConn.Open()
'Si la base de données est protégé par le mot de passe "password", 
'vous devez utiliser le paramétrage du moteur défini par Jet 'OLEDB:Database Password, 
'tel que :
Dim MaConn As OleDb.OleDbConnection
Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\User\bib2000.mdb;" & _
"Jet OLEDB:Database Password=password;"
MaConn = New OleDb.OleDbConnection(strConn)
MaConn.Open()
'Si la base utilise un fichier de sécurité externe, la chaîne sera alors de la forme
Dim MaConn As OleDb.OleDbConnection
Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\User\bib2000.mdb;" & _ 
"Jet OLEDB:System Database=D:\User\system.mdw;User ID=Username;Password=password;"
MaConn = New OleDb.OleDbConnection(strConn)
MaConn.Open()

Comment définir une connexion ?
auteur : Jean-Marc Rabilloud
L'approche est toujours la même. Vous devez d'abord choisir le fournisseur managé à utiliser, celui-ci définissant les noms des classes à utiliser. Vous devez ensuite définir la chaîne de connexion puis instancier l'objet connexion à l'aide de cette chaîne.

Une chaîne de connexion est généralement composé de :

  • La désignation du catalogue ciblé
  • Informations d'authentification
  • Paramètres du pilote
Par exemple, pour se connecter à la base de données Access Biblio.mdb à l'aide du fournisseur managé pour OLE DB, on aura :

Dim MaConn As OleDb.OleDbConnection
Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\User\bib2000.mdb"
MaConn = New OleDb.OleDbConnection(strConn)
MaConn.Open()
Pour se connecter à la base pubs SQL Server ce sera :
Dim MaConn As SqlClient.SqlConnection
Dim strConn As String = "Data Source=ISPCF261025\SQLEXPRESS;Initial Catalog=pubs;Integrated Security=True"
MaConn = New SqlClient.SqlConnection(strConn)
MaConn.Open()
On trouve des exemples de chaînes de connexion là

lien : en Chaînes de connexion


Consultez les autres F.A.Q's


Valid XHTML 1.1!Valid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.