[gull] ODBC LINUX & MSACCESS

Martial Guex m.guex at mutech.ch
Wed Nov 26 18:21:02 CET 2003


On Tuesday 25 November 2003 13:43, Eric Piollet wrote:
> j'ai une base msAccess sur windows 2000 + 1 site /ldap/apache /php/mysql
> sur linux redhat 8
> En utilisant unixODBC est il possible d'attaquer la base access depuis ma
> plateforme LINUX ?
> Si oui ... ou trouver le driver ACCESS ???

Il faut que je précise quelques point, le problème avec une base de données 
access (attention je parle d'une base de donnée clasique et non pas un 
"projet"). Le système adopté par MS et d'utiliser un fichier et de gerer les 
accés concurent à la bd par les clients. Ce qui explique la lenteur de ce 
système sitôt qu'il y a plus d'un utilisateur. Ceci implique que tu doive 
avoir en premier l'accés à ce fichier et en plus de pouvoir assurer l'accés 
concurent à ce même fichier. Ce système n'existe pas à ma connaissance sur 
Linux et d'ailleur ce serai hazadeux car MS pourait à tout instant changer la 
méthode d'accés par l'intermèdiaire de patch de securité.
Il existe par contre des sortes de gateway odbc en le système odbc sur MS et 
celui de linux:
http://odbcsock.sourceforge.net/
http://www.fastflow.it/dbftp/
Qui crée un server odbc sur MS et qui est accésible par des clients depuis 
linux.
Pour ma part je convertirait ma bd access en projet access en utilisant MSDE 
(version light de SQL Server) qui est disponible entre autre sur les CD 
d'installation d'office 2000 pro et d'Access 2000.
La convertion peut-être fait automatiquement et ceci relativement facilement à 
l'aide de l'assistant de migration vers SQL Server.
Ensuite tu peus facilement acceder au serveur MSDE depuis linux en utilisant 
le driver d'accès freetds (http://www.freetds.org/) éventuellement par 
l'intermediaire de sqlrelay, dbi etc.
Cette solution est beucoup plus propre et te permet des choses impossible avec 
un bd access sous forme de fichier comme par exemple d'utiliser des requêtes 
enregistrèe sur le serveur, de contrôler l'integriter au niveau du serveur et 
d'executer de procèdures stoquées sur le serveurs, d'avoir des triggers etc.
Le petit inconvegnent et que pour faire un backup de la bd il ne suffit plus 
de copier un fichier mais il faut executer soit une commande SQL (BACKUP) ou 
d'utiliser MS Access (menu outils->utilitaire de bd->sauvegarder), par contre 
il est possible de faire cette opération même si des clients sont connectés 
contrairement à la copie du fichier access.
J'utilise freetds depuis un certain temps et je n'ai eu que rarement des 
problèmes.
A+
Martial




More information about the gull mailing list