HELP : accéder en SQL à une base DBASE

Petit nouveau ! | 4 Messages

19 mai 2006, 10:40

Bonjour,

J'ai un problème un peu particulier : je cherche à accéder à une base DBASE sans passer par les fonctions dbase_open, dbase_get_record_with_names etc.
En effet, cette solution ne me permettant pas d'effectuer des requêtes de type SQL, elle m'oblige à reparcourir chaque fois la totalité des enregistrements.

J'aimerai donc accéder par un procédé du type ODBC avec un odbc_connect. Le seul problème est que mes bases dbase n'ont pas l'extension .DBF, mais une extension spécifique à une application, et qu'en utilisant les drivers DBASE traditionnels on se retrouve limité aux extensions DBASE traditionnelles.

Alors bien sûr je pourrai renommer les fichiers le temps du traitement et le re-renommer en fin de traitement, mais en cas de problème de traitement, ceci pourrait conduire à une indisponibilité de l'application qui utilise ces fichiers, ce qui n'est pas acceptable.
Ou encore passer par une base ACCESS sur laquelle je "lierai" les tables DBASE (car là j'arrive à me connecter à la dite table) puis accéder la base ACCESS par un driver odbc mais là encore cette solution ne me sied guère.

Je cherche donc un moyen de configurer mon driver odbc (ou alors une autre façon de procéder) pour lui indiquer que la base DBASE n'est pas avec l'extension .DBF mais avec l'extension .CBC.

Merci par avance pour vos lumières.

Frédéric

Greedo
Invité n'ayant pas de compte PHPfrance

19 mai 2006, 11:57

Plutot que de la renommer, tu pourrais peut etre la copier ?

Eléphant du PHP | 200 Messages

19 mai 2006, 11:58

sage conseil greedo :wink:
Univers divided by 0 - cucumber error - reboot

Petit nouveau ! | 4 Messages

19 mai 2006, 12:02

ben le fait de copier ne change absolument rien car je dois faire des actions de modification sur la base, pas seulement de la consultation.
Donc au final je devrais remettre en place les bases DBASE modifiées, et si mon traitement "plante" en plein milieu pour une raison X ou Y, et bien l'application ne disposera pas des données correctes.