OpenDatabase() : Choisir de la base

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
MarMau
Messages : 3
Inscription : jeu. 11/juin/2009 23:04

OpenDatabase() : Choisir de la base

Message 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
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Message 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
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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.
Image
Répondre