web-dev-qa-db-fra.com

Différence entre Microsoft.Jet.OleDb et Microsoft.Ace.OleDb

Cela fait de nombreuses années que j'ai programmé avec Classic ASP et Microsoft Access, où nous avons utilisé le pilote "Microsoft.Jet.Oledb" pour accéder aux données et les afficher.

On m'a demandé de travailler sur l'accès aux données MS Excel à l'aide de "Microsoft.Ace.Oledb". J'ai découvert que cela faisait partie du téléchargement du "téléchargement du moteur Microsoft Access 2010".

Je voudrais savoir si "Microsoft.Jet.OleDb" a remplacé le pilote "Microsoft.Ace.Oledb" et sont essentiellement les mêmes ou sont-ils des choses complètement différentes?

En outre, obtenez-vous normalement le pilote "Microsoft.Ace.Oledb" lorsque vous achetez MS Access 2010?

51
RT88

C’est principalement une question d’histoire. En effet, ACE a remplacé JET:

Wikipedia répond à votre question en détail.

Les sections les plus pertinentes sont:

À partir de la version 2007, Access inclut une version de Jet spécifique à Office, appelée à l'origine moteur ACE (Office Access Connectivity Engine), mais qui s'appelle désormais moteur de base de données Access. Ce moteur est entièrement compatible avec les versions précédentes du moteur Jet, de sorte qu'il lit et écrit (.mdb) les fichiers des versions antérieures d'Access. Il introduit un nouveau format de fichier par défaut (.accdb), qui apporte plusieurs améliorations à Access, notamment des types de données complexes tels que les champs à plusieurs valeurs, le type de données de pièce jointe et le suivi de l'historique dans les champs de mémo. Il apporte également des améliorations en matière de sécurité et de chiffrement et permet l'intégration avec Microsoft Windows SharePoint Services 3.0 et Microsoft Office Outlook 2007.

En outre, ACE fournit un pilote 64 bits et peut donc être utilisé sur des ordinateurs 64 bits, contrairement à JET.

Le pilote ne fait pas partie du système d'exploitation Windows, mais est disponible sous forme de fichier redistribuable. [11] Auparavant, le moteur de base de données Jet était uniquement 32 bits et ne s'exécutait pas de manière native sous les versions 64 bits de Windows.

En ce qui concerne la deuxième partie de votre question, j'ai récemment installé Office 2010 et je devais télécharger les composants ACE séparément. Je les ai tirés du lien moteur de base de données Microsoft Access 2010 redistribuable . Cela est probablement dû au fait que j'avais installé une version 32 bits d'Office sous Windows 64 bits; dans tous les cas, les fichiers nécessaires sont faciles à obtenir auprès de Microsoft.

72
dash

Les pilotes sont essentiellement les mêmes lorsqu'ils sont utilisés pour des opérations de base et montrent une différence notable avec des éléments plus complexes (unions, requêtes imbriquées, etc.).

D'après l'expérience personnelle, ACE ne fournit pas de résultats totalement compatibles avec les versions antérieures. Il peut ouvrir et lire/écrire le format .mdb précédent, mais il y a des changements dans type de données diffusion des mêmes requêtes.

Par exemple, lorsque vous utilisez UNION sur des champs TEXT, où JET renvoyait le résultat TEXT (255), ACE renvoie MEMO?!

Cela peut entraîner de nombreux problèmes en association avec la BI ou des outils de génération de rapports tels que Crystal Reports.

6
Milan Oparnica