Provider OleDb [Résolu]

Signaler
Messages postés
186
Date d'inscription
lundi 11 mars 2002
Statut
Membre
Dernière intervention
30 novembre 2010
-
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019
-
Salut

Je suis à la recherche d'une solution pour afficher la liste des provider OleDb. Si quelque à la solution ou peu m'aiguiller sur un site...

Merci et bonne prog

Nico
A voir également:

17 réponses

Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Tiens j'ai oublié de posté ma solution .....
Je le fait de suite
<hr size="2" width="100%" />'Références à ajouté :
'   Microsoft ActiveX Data Objects 2.x Library
'   Microsoft OLE DB Service Component 1.0 Type Library.

Dim cn As ADODB.Connection

Private Sub Command1_Click()
    Dim MSDASCObj As MSDASC.DataLinks
    Set MSDASCObj = New MSDASC.DataLinks
    'Set cn = New ADODB.Connection
    Set cn = MSDASCObj.PromptNew
    'If  Then
    If Not cn Is Nothing Then
        cn.Open
        If cn.State = adStateOpen Then
            MsgBox "Connection opened successfully"
            cn.Close
        End If
    End If
End Sub
<hr size="2" width="100%" />Ce n'est pas forcément la solution idéale de mon point de vue mais déjà pas mal (et ça fonctionne)

Amicalement
Pensez "Réponse acceptée"
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 123 internautes nous ont dit merci ce mois-ci

Messages postés
361
Date d'inscription
mercredi 21 mai 2003
Statut
Membre
Dernière intervention
12 novembre 2009

Salut,

Tu peux trouver les infos dans la registry:
HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI

A+
Messages postés
186
Date d'inscription
lundi 11 mars 2002
Statut
Membre
Dernière intervention
30 novembre 2010
2
Merci ca m'aide pour les drivers et les sources ODBC mais je n'y trouve pas les providers oledb
(j'ai fait une recherche dans toutes la bases de registre)

Pour voir la liste
Dans visual basic 6
- Clique sur l'icone fenêtre données
- Clique sur 'ajouter une nouvelle connexion aux données'

Je veux obtenir la liste qui apparait : 'Fournisseur Ole db'

Pour infos, j'utilise les apis ODBC32.dll pour obtenir ce que tu trouves dans la base de registre.

N'hésite pas si tu veux je te file le code

Nico
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Bonjour, étant donnée que ce topic commence à daté un peut, à tu trouvé la solution ?
(Je cherche à faire pareil en ce moment et la seul solution que j'ai trouvé est de construire un fichier avec TOUT les providers OleDb existant, enfin ceux que je trouve, et à la rigueur mettre à jours ce ficher si d'autre sont diffusé ou si des mise à jours paraisse. Mais je n'arrive pas à trouvé la liste des provider DISPONIBLE sur la machine. Je voudrais évité les truc DÉGUEULASSE comme ce que j'expose plus haut)

Merci

Amicalement
Pensez "Réponse acceptée"
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Lol il suffit que je pose la question pour trouvé ce que je cherche (bon, ce n'est pas exactement la liste des providers dispo sur la machine mais c'est suffisant pour ce que je veut faire)
Ici : http://www.dotnet-news.com/lien.aspx?ID=25696
A+
Amicalement
Pensez "Réponse acceptée"
Messages postés
186
Date d'inscription
lundi 11 mars 2002
Statut
Membre
Dernière intervention
30 novembre 2010
2
Salut Polack77,

A l'époque, j'avais trouvé un composant ActiveX intégrer a Windows qui ouvre un formulaire permettant de sélectionner sa connexion (il construit et retourne une chaine de connexion)

C'est une boite de dialogue qu'on voit souvent pour les connexions ODBC / OLEDB. Le problême c'est que ca date, que le projet est en VB6 et que ca fait belle lurette que je n'ai plus cette version de VS installé.

Si vraiment t'en a besoin je ferais une recherche texte dans le projet

A+

Nico
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Dans V.S. 2005 j'ai trouvé ça :
Microsoft.Data.ConnectionUI.DataConnectionDialog

C'est une boite de dialogue retournant des informations suffisante pour construire la chaine de connections en OleDb mais ça ne fonctionne (je crois) que pour VB2005 et en VB6 ça m'arrangerais donc si tu à une idée de où trouvé ça (pour l'ODBC je sait faire, autrement mais ça fonctionne bien donc pas de problème) mais je ne sait pas me connecté en OleDb avec VB6

Merci d'avance

Amicalement
Pensez "Réponse acceptée"
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Au faite pour utilisé (en Dot.Net) :
Microsoft.Data.ConnectionUI.DataConnectionDialog

Il faut ajouté la référence (absente de la liste) :
Fichier : Microsoft.Data.ConnectionUI.Dialog.dll
Dossier : Program Files\Microsoft Visual Studio 8\Common7\IDE

Un exemple est présent sur cette page :
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=225772&SiteID=1
Amicalement
Pensez "Réponse acceptée"
Messages postés
22
Date d'inscription
lundi 19 juin 2006
Statut
Membre
Dernière intervention
27 août 2010

S'il n'est pas trop tard et que cela peut t'aider ou un autre qui se pose la même question,  cette procédure retourne la liste demandée dans un DataGridView

Imports System.Data
Imports System.Data.OleDb

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim enumerator As New OleDbEnumerator
        Dim table As System.Data.DataTable = enumerator.GetElements()
        DataGridView1.DataSource = table
    End Sub

End Class
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Il n'est JAMAIS trop tard pour bien faire .
Bon il est trop tard pour le projet que je développais à l'époque mais bon sa me serviras un jours c'est certain :)

Merci c'est exactement ce que je cherchais à l'époque :)
(Existe t'il un équivalent en VB6 ?)
Amicalement
Pensez "Réponse acceptée"
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Au risque d'être chiant :
Je ne comprend pas bien la colonne "SOURCE_TYPE" dans la table retourné. Sur MSDN je trouve sa :
<hr size= "2" width="100%" />SOURCE_TYPE :
        Un des membres de l'énumération suivants :
           -> Binder (0)
           -> DataSource_MDP (1)
           -> DataSource_TDP (2)
           -> Enumerator (3)
          Ceux-ci correspondent aux valeurs retournées dans la colonne
        SOURCES_TYPE du jeu de lignes des sources OLE DB natives.
<hr size="2" width="100%" />Et sa ne me parle pas vraiment

Déjà si j'ai bien compris (ce dont je doute à vrais dire ) :
Binder (0) => Aucune idée ?????
   Aucun provider de ce type sur ma machine semble t'il ????

DataSource_MDP (1) = > Provider de connexion "classique" à ne BdD (enfin je crois )
   Semble contenir tout les providers "classique" utilisable pour une connexion à une BdD.
   Exemple : "PostgreSQL OLE DB Provider", "Microsoft OLE DB Provider for Oracle", ...

DataSource_TDP (2) => Provider de connection à une BdD (GROS DOUTE)
   Semble être un autre type de provider de connexion à des BdD mais je ne comprend pas la différance avec les type 1 ??????
   Exemple : "Microsoft OLE DB Enumerator for SQL Server", "Microsoft OLE DB Enumerator for ODBC Drivers", ...

Enumerator (3) => Aucune idée ?????
   Exemple : "Microsoft OLE DB Provider for OLAP Services", "Microsoft OLE DB Provider for OLAP Services 8.0" (les seuls présent sur ma machine)

   Pour le moment je n'utiliserais que les type 1 (DataSource_MDP) mais il semble que les types 2 (DataSource_TDP) ont des avantages (ce qui me fait dire sa : Ici). Si quelqu'un peut m'aidé à comprendre sa serais super sympa .
Merci d'avance

Amicalement
Pensez "Réponse acceptée"
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Oupssss j'ai trompé oublier ce que j'ai dit sur le type 2 (DataSource_TDP) j'ai fait une erreur de copier coller durant mes recherche
Du coup je ne sait pas du tout à quoi correspond ce type (2 : DataSource_TDP)
DZL

Amicalement
Pensez "Réponse acceptée"
Messages postés
22
Date d'inscription
lundi 19 juin 2006
Statut
Membre
Dernière intervention
27 août 2010

pour faire des recherches sur ces sujets dans Google, il faut faire précéder de le nom du model de : 'database model ".

TDP  équivaut à  Tabular Data Provider

MDP équivaut à  Multidimensional Data Provider
 voir (en anglais) http://www.technion.ac.il/docs/sas/eis/zenid-33.htm
"The Multidimensional
Data Provider (MDP) is a data model that accesses a variety of data structures
in a distributed environment."
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Ok merci de l'info :)
Donc si je comprend bien (me corigé si je raconte des conneries svp) :

DataSource_MDP (1) => Provider de connexion "classique" à une BdD. Soit elle permettent de faire des séléctions, sprésions, insertions et mises à jours de données, ce dans plussieurs tables simultanément avec différant type de données.

Et les autres ne me seront d'aucune utilité (en tout cas pour le moment, et je n'es pas vraiment le temps en ce moment de faire des recherches pour comprendre les différances avec plus de présision).

Encore merci pour ces précisions qui me seront bien utile dans un avenir proche :)
Amicalement
Pensez "Réponse acceptée"
Messages postés
22
Date d'inscription
lundi 19 juin 2006
Statut
Membre
Dernière intervention
27 août 2010

En fait c'est le modèle Tabular (en table) qui est classique, le modèle Multidimensionnelle est beaucoup plus complexe étant en pratique plusieurs tables dans un univers virtuel à plusieurs dimensions. voir:
 http://fr.wikipedia.org/wiki/OLAP
 et
 http://fr.wikipedia.org/wiki/Base_de_donn%C3%A9es
Messages postés
22
Date d'inscription
lundi 19 juin 2006
Statut
Membre
Dernière intervention
27 août 2010

La confusion provient probablement du fait que lorsqu'on fait la liste des prividers OLE DB la majorité des providers soient de type DataSource_MDP (1). Je n'ai pas trouvé d'explication mais on peut supposer que le type ne soit pas restrictif et que le type (1) puisse faire ce que fait le type (2) (une table classique étant seulement à 2 dimensions), alors que le type (2) ne peut pas faire ce que fait le type (1).

De plus un provider OLE DB fournissant l'accès à plusieurs types de base de données par exemple:
<li>VSAM (Virtual Sequential Access Method)</li><li>Fichiers AS/400</li><li>Bases de données relationnelles (telles que
Microsoft® SQL Server et Oracle)</li><li>Tableurs personnels (tels que Microsoft® Excel)</li><li>Bases de données personnelles (telles que Microsoft
Jet)</li><li>Documents de traitement de texte</li><li>Fichiers texte</li><li>Courrier électronique</li><li>...</li>le type ne pourrait pas servir dans ces cas et seulement dans le cas des bases de données relationnelles.

C'est lors de la manipulation des données du côté serveur et du côté client que se fait la différenciation dans l'architecture de la table.
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Houla c'est moins évidant que ce que je pensait en faite (même si je pense qu'avec un peut de temps tout deviendras claire)
Merci pour ces précisions

Je n'es hélasse pas le temps cette semaine (et sans doute la semaines prochaines non plus) de me ré-intéresser à ce problème .
(Je posterais de toute façon mes conclusions et éventuel codes programmes ici)

Merci encore erdna du temps investie à mon piti problème

Amicalement
Pensez "Réponse acceptée"