Page 1 sur 1

OpenDatabase() : Choisir de la base

Publié : ven. 10/juil./2009 12:42
par MarMau
Bonjour,

Avec Pure Basic et la commande OpenDatabase(), la connexion à une base ODBC implique autant de lien ODBC qu'il y a de base.
Cette commande ne nous permet pas de choisir la base mais seulement le lien ODBC(DSN) qui prendra la base paramétré dans ce lien.

Est-il possible de préciser le nom de la Base avec cette commande ?
Si non pensez-vous faire évoluer cette commande pour que l'on puisse préciser la base ?

Merci
MarMau

Publié : ven. 10/juil./2009 13:08
par gnozal
La solution que j'utilise est de créer les DSN en temps réel.

Exemple [cf. fonction MakeConnection()] : http://www.purebasic.fr/english/viewtopic.php?t=16474

Publié : ven. 10/juil./2009 17:27
par Flype
Sinon, il est toujours possible d'utiliser les fonctionnalités SQL dédiées.

Par exemple, avec MySQL il y a au moins deux méthodes pour palier au problème de pré-sélection d'une base dans un connecteur ODBC :

Solution 1 :

Code : Tout sélectionner

USE ma_base;
Cette commande va changer la base par défaut.
Ensuite toute autre requête utilisera cette base quelque soit la base pré sélectionnée dans le connecteur ODBC.

Solution 2 :

Code : Tout sélectionner

SELECT * FROM mabase.ma_table;
En préfixant chaque appel à une table avec le nom de la base, là encore peu importe la base du connecteur ODBC, cela fonctionnera.

Il est même possible de lier des tables dans des bases différentes :

Code : Tout sélectionner

SELECT 
* 

FROM 
mabase1.ma_table a,
mabase2.ma_table b

WHERE 1
AND a.id = b.id;
Selon le contexte, j'utilise très très fréquemment l'une ou l'autre de ces solutions.