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
OpenDatabase() : Choisir de la base
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
Exemple [cf. fonction MakeConnection()] : http://www.purebasic.fr/english/viewtopic.php?t=16474
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 :
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 :
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 :
Selon le contexte, j'utilise très très fréquemment l'une ou l'autre de ces solutions.
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;
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;
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;