Oledb, Jet, Access, SQL Server et le 64bits
Petite mésaventure dans la cadre de la migration d'un client de SQL Server 2000 à 2005... En fait pour être exact celui-ci voulait passer à SQL Server 2005 x64 (plate forme Xéon 64 bits).
Cela nous a amené à découvrir une chose intéressante, SQL Server 2005 x64 ne peut accéder aux drivers Oledb 32 bits et ne peut pas non plus utiliser une assembly compilé en 32 bits uniquement.
Dans le cas du fournisseur Oledb Jet (celui permettant l'accès entre autre à Access et Excel), il n'existe pas en version x64, nous avons tout d'abord cru que cela s'appliquait à tous les processeurs 64 bits sans exceptions, mais il en existe 1 pour Itanium :
http://www.microsoft.com/downloads/details.aspx?FamilyID=ad2b6698-de73-47dc-911b-50f4f0627ff4&DisplayLang=en
Moralité comment faire pour utiliser le driver Jet, dans le cas d'application asp.net le contournement est assez facile à trouver :
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=480690&SiteID=1 (Petit coucou au passage à un ancien collègue...)
http://support.microsoft.com/kb/905854
Dans le cas présent plusieurs solutions :
- SSIS qui peut s'exécuter en 32bits (2 versions (32 et 64 bits) de dtexec.exe existent)
- Utiliser du script (Vb ou Js) avec wscript.exe (2 versions aussi (32 et 64 bits))
- Utiliser une application 32 bits en mode console, à appeler avec xp_cmdshell
- Utiliser un composant 32 bits via COM+ au travers de la couche d'interop pour l'inclure dans votre fonction/procédure .net dans SQL Server 2005
La liste est non limitative, c'est juste pour le moment tout ce que nous avons trouvé, ou que le support Ms a fourni. La solution ultime serait que le driver en question sorte sur cette plateforme.
Pour ce qui des autres drivers, tournez vous vers leurs éditeurs respectifs, et certains drivers sont dans le Feature Pack pour SQL Server (voir un de mes post précédent).
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :