Comment vérifier si un pilote OLEDB est installé sur le système?
Comment puis-je m'assurer qu'un certain pilote OLEDB est installé, quand je démarre mon application? J'utilise ADO à partir de Delphi et voudrais afficher un message d'erreur descriptif si le pilote est manquant. L'erreur est renvoyé à partir d'ADO n'est pas toujours convivial.
Il y a probablement une belle petite fonction qui retourne tous les pilotes installés, mais je n'ai pas trouvé.
OriginalL'auteur Karl-Otto Rosenqvist | 2008-09-22
Vous devez vous connecter pour publier un commentaire.
Chaque fournisseur a un GUID associé à sa classe. Afin de trouver le guid, ouvrez regedit et de recherche dans le registre le nom du fournisseur. Par exemple, une recherche pour "Microsoft Jet 4.0 OLE DB Provider". Lorsque vous vous trouvez, copiez la clé (la valeur GUID) et de l'utiliser dans un registre de recherche dans votre demande.
OriginalL'auteur
C'est une vieille question, mais j'ai eu le même problème aujourd'hui et peut-être que cela peut aider les autres.
En Delphi 7, il y a une procédure en ADODB que le retour d'un TStringList avec le fournisseur de noms.
Exemple d'utilisation:
OriginalL'auteur
Vous pouvez obtenir un ADO nom du fournisseur et vérifier dans la base de registre au chemin HKEY_CLASSES_ROOT\[Provider_Name].
OriginalL'auteur
Ne serait pas le moyen le plus facile simplement tenter d'établir une connexion au démarrage et à la capture de l'erreur?
Je veux dire, vous pourriez obtenir un peu différentes erreurs de retour en fonction, par exemple, l'utilisateur est en ligne, mais ils sont les cas que vous devriez être en mesure de tester.
OriginalL'auteur
Je crois que le OLEDB les objets en question sont enterrés quelque part dans le registre, depuis OLEDB /ADO est un COM solution. Ma conjecture serait de voir si vous pouvez trouver le GUID que votre pilote est installé dans le registre.
OriginalL'auteur
OriginalL'auteur