Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com

Accueil

 
4D v20
Connexions externes

Connexions externes  


 

 

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.

 ARRAY TEXT(aDSN;0)
 ARRAY TEXT(aDS_Driver;0)
 C_TEXT($Crt_DSN;$My_ORACLE_DSN)
 ARRAY TEXT(aTitles;0)
 ARRAY LONGINT(aNrActors;0)
 ARRAY LONGINT(aSoldTickets;0)
 ARRAY INTEGER(aMovieYear;0)
 ARRAY TEXT(aTitles;0)
 ARRAY TEXT(aDirectors;0)
 ARRAY TEXT(aMedias;0)
 C_LONGINT($MovieYear)
 C_TEXT($tQueryTxt)
 REDUCE SELECTION([MOVIES];0)
 $MovieYear:=1960
  `Par défaut, la source de données (DSN) courante est interne : ";DB4D_SQL_LOCAL;" (valeur de la constante SQL_INTERNAL)
 $Crt_DSN:=Get current data source
 ALERT("La DSN courante est"+$Crt_DSN)
 
  `Faire quelque chose avec la base interne
 Begin SQL
    SELECT Year_of_Movie, Title, Director, Media, Sold_Tickets
    FROM MOVIES
    WHERE Year_of_Movie >= :$MovieYear
    INTO :aMovieYear, :aTitles, :aDirectors, :aMedias, :aSoldTickets;
 End SQL
 
  `Récupérer les sources de données utilisateur définies dans le gestionnaire ODBC
 GET DATA SOURCE LIST(User data source;aDSN;aDS_Driver)
 $My_ORACLE_DSN:="Test_Oracle_10g"
 If(Find in array(aDSN;$My_ORACLE_DSN)>0)
  `Connexion entre 4D et la source $My_ORACLE_DSN="Test_Oracle_10g"
 
    SQL LOGIN($My_ORACLE_DSN;"scott";"tiger";*)
 
  `La DSN est la base ORACLE
    $Crt_DSN:=Get current data source
    ALERT("La DSN courante est"+$Crt_DSN)
    ARRAY TEXT(aTitles;0)
    ARRAY LONGINT(aNrActors;0)
    ARRAY LONGINT(aSoldTickets;0)
    ARRAY INTEGER(aMovieYear;0)
    ARRAY TEXT(aTitles;0)
    ARRAY TEXT(aDirectors;0)
    ARRAY TEXT(aMedias;0)
 
  `Faire quelque chose avec la base externe (ORACLE)
    Begin SQL
       SELECT ENAME FROM EMP INTO :aTitles
    End SQL
 
  `Refermer la connexion ouverte avec la commande SQL LOGIN
    SQL LOGOUT
  `La DSN courante redevient la base interne
    $Crt_DSN:=Get current data source
    ALERT("La DSN courante est"+$Crt_DSN)
 Else
    ALERT("DSN ORACLE non installée")
 End if

Pour tester cet exemple, dans la boîte de dialogue principale de la base "4D SQL Code Samples", cliquez sur le bouton Connexion à ORACLE.

 
PROPRIÉTÉS 

Produit : 4D
Thème : Prise en main

 
PAGE CONTENTS 
 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D - Référence SQL ( 4D v20)