J'écris une classe en utilisant C++ (ATL). J'ai besoin de me connecter à une base de données. Je suis familier avec ADO mais je vois que toutes les fonctions utilisent IDispatch (late-binding/Automation). J'envisage d'utiliser OLEDB à la place. Quels sont les avantages et les inconvénients de chacun? OLEDB semble beaucoup de maintenance si le sql change (tables, procs stockés, etc). J'ai utilisé l'assistant pour créer des en-têtes OLEDB et ils ne semblent pas aussi faciles à "utiliser" qu'ADO mais la vitesse compte. ADO dispose également d'un mécanisme simple pour convertir le résultat en XML, ce dont j'ai besoin. a-t-on déjà utilisé les deux? lequel préfères-tu? Merci! Pour clarifier, je ne mentionne ATL que parce qu'il y a des assistants ATL pour créer des objets de consommation OLEDB.Utilisation d'ADO ou OLEDB avec ATL
0
A
Répondre
0
L'utilisation des classes ATL qui enveloppent OLEDB est le chemin à parcourir. Si vous considérez que vous allez devoir faire correspondre votre schéma de base de données aux classes C++ internes, vous le ferez avec ADO et beaucoup d'IDispatch ou avec OLEDB, ce qui est plus naturel en C++. Si le schéma de votre base de données change, vous devrez modifier votre code quelle que soit l'approche.
ADO est un wrapping OLE Automation de OLEDB, donc il n'y aura pas de gains de performance, sauf que vous aurez beaucoup moins de code thunking IDispatch à écrire.
Il existe de nombreux choix et approches pour obtenir ces données dans un format XML.