Cohabitation ODBC

Date 10/12/2002 9:31:32 | Sujet : Trucs et astuces

Ci-dessous, un article que j'avais publié sur WIF : faire cohabiter les pilotes ODBC Jet de Win2000 et ceux des anciennes versions .


Lorsque vous installez MS-Office 2000 ou Visual Studio 6 SP3, cela met automatiquement à jour les pilotes ODBC Jet de la version 3.5 vers la 4.0. Du coup, les anciennes applications qui ne supportent pas ce nouveau pilote ne vont donc plus fonctionner.
Microsoft fournit alors deux méthodes pour faire cohabiter les deux versions du pilote ODBC Jet.
On notera que le pilote IISAM pour FoxPro n'est plus supporté avec ODBC Jet 4.0. En revanche, l'IISAM pour dBase et Paradox n'est plus restreint à l'accès en lecture seule et vous permet de faire des mises à jour si le BDE (Borland Database Engine) est installé.
La 1ere méthode fonctionne avec toutes les versions 32bits de Windows mais elle demande à ce que l'application utilise un DSN pour effectuer sa connexion. La seconde méthode marche sans DSN mais ne peut être implémentée qu'avec les versions Windows 98 SE et 2000.
<u>Méthode DSN</u>
Lorsqu'une connexion ODBC se fait à travers un DSN, le gestionnaire du pilote utilise le chemin stocké dans le Registre. Normalement, cela pointe sur la version par défaut du pilote. Cependant, vous pouvez changer cela et faire le DSN pointe sur une copie du pilote ODBC dans votre répertoire d'application ou, si votre DSN est utilisé par plusieurs programmes dans un autre répertoire approprié. La clé de registre pour le DSN système est :
<code>HKEY_LOCAL_MACHINE /SOFTWARE
/ODBC /ODBC.INI /dsn-name</code>
Pour un DSN utilisateur :<code>
HKEY_Current_User /SOFTWARE
/ODBC /ODBC.INI /dsn-name</code>
dsn-name est le nom du DSN. Changez la valeur Driver pour pointer sur le répertoire de votre choix. Vous avez ensuite besoin de copier les fichiers suivants dans ce nouveau répertoire :
# ODBCJT32.DLL (v. 3.5x)
# ODBCJI32.DLL (v. 3.5x)
# OLE32.DLL (cette DLL est spécifique à l'OS, la copier dans le répertoire SYSTEM ou SYSTEM32)
# VBAJET32.DLL (v. 6.x)
# EXPSRV.DLL
# MSJTER35.DLL (v. 3.5x)
# ODBCTL32.DLL (à copier dans SYSTEM ou SYSTEM32)

<u>Méthode fichier LOCAL</u>
Windows 98 Second Edition ou Windows 2000 introduisent une nouvelle caractèristique pour rediriger COM et les appels à l'API LoadLibrary. Celle-ci surcharge le chemin spécifié et oblige la DLL ou l'OCX à se charger dans le répertoire de l'application. Pour implémenter cette méthode, suivez les instructions suivantes :
Installez les fichiers listés ci-dessus dans le répertoire de votre application.
Installez un fichier factice dans ce répertoire ayant le même nom que votre programme et l'extension suivante : .exe.local. Par exemple si votre programme se nomme Projet1.exe, le fichier factice se nommera Projet1.exe.local. Vous devez créer autant de fichiers factices que de fichiers programmes.
Cela oblige l'OS à charger les DLLs depuis le répertoire de l'application sans avoir besoin qu'une connexion DSN soit faîte.



Cet article provient de WDForge.org
http://old.wdforge.org

L'adresse de cet article est :
http://old.wdforge.org/article.php?storyid=58