4D vous permet d'utiliser des bases de données externes, c'est-à-dire d'exécuter des requêtes SQL sur d'autres bases que la base locale. Pour cela, vous pouvez vous connecter à toute source de données externe via ODBC ou directement à d'autres bases 4D.
Voici les commandes permettant la connexion à des bases de données externes :
- LISTE SOURCES DONNEES retourne la liste des sources de données ODBC installées sur la machine.
- Lire source donnees courante indique la source de données ODBC utilisée par l'application.
- SQL LOGIN vous permet de vous connecter à une base externe directement ou via une source de données ODBC installée sur la machine.
- SQL LOGOUT peut être utilisée pour refermer toute connexion externe et se reconnecter à la base 4D locale.
- USE DATABASE (commande SQL) permet d'ouvrir une base de données 4D externe en utilisant le moteur SQL de 4D.
L'exemple suivant illustre la connexion à une source de données externe (ORACLE), la récupération de données depuis cette base ORACLE ainsi que la déconnexion de cette base et le retour à la base locale. Cet exemple suppose qu'une source de données externe valide nommée "Test_ORACLE_10g" est installée dans le système.
TABLEAU TEXTE(aDSN;0)
TABLEAU TEXTE(aDS_Driver;0)
C_TEXTE($Crt_DSN;$My_ORACLE_DSN)
TABLEAU TEXTE(aTitles;0)
TABLEAU ENTIER LONG(aNrActors;0)
TABLEAU ENTIER LONG(aSoldTickets;0)
TABLEAU ENTIER(aMovieYear;0)
TABLEAU TEXTE(aTitles;0)
TABLEAU TEXTE(aDirectors;0)
TABLEAU TEXTE(aMedias;0)
C_ENTIER LONG($MovieYear)
C_TEXTE($tQueryTxt)
REDUIRE SELECTION([MOVIES];0)
$MovieYear:=1960
$Crt_DSN:=Lire source donnees courante
ALERTE("La DSN courante est"+$Crt_DSN)
Debut SQL
SELECT Year_of_Movie, Title, Director, Media, Sold_Tickets
FROM MOVIES
WHERE Year_of_Movie >= :$MovieYear
INTO :aMovieYear, :aTitles, :aDirectors, :aMedias, :aSoldTickets;
Fin SQL
LISTE SOURCES DONNEES(Source de données utilisateur;aDSN;aDS_Driver)
$My_ORACLE_DSN:="Test_Oracle_10g"
Si(Chercher dans tableau(aDSN;$My_ORACLE_DSN)>0)
SQL LOGIN($My_ORACLE_DSN;"scott";"tiger";*)
$Crt_DSN:=Lire source donnees courante
ALERTE("La DSN courante est"+$Crt_DSN)
TABLEAU TEXTE(aTitles;0)
TABLEAU ENTIER LONG(aNrActors;0)
TABLEAU ENTIER LONG(aSoldTickets;0)
TABLEAU ENTIER(aMovieYear;0)
TABLEAU TEXTE(aTitles;0)
TABLEAU TEXTE(aDirectors;0)
TABLEAU TEXTE(aMedias;0)
Debut SQL
SELECT ENAME FROM EMP INTO :aTitles
Fin SQL
SQL LOGOUT
$Crt_DSN:=Lire source donnees courante
ALERTE("La DSN courante est"+$Crt_DSN)
Sinon
ALERTE("DSN ORACLE non installée")
Fin de si
Pour tester cet exemple, dans la boîte de dialogue principale de la base "4D SQL Code Samples", cliquez sur le bouton Connexion à ORACLE.