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 R7
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.

 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
  `Par défaut, la source de données (DSN) courante est interne : ";DB4D_SQL_LOCAL;" (valeur de la constante SQL_INTERNAL)
 $Crt_DSN:=Lire source donnees courante
 ALERTE("La DSN courante est"+$Crt_DSN)
 
  `Faire quelque chose avec la base interne
 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
 
  `Récupérer les sources de données utilisateur définies dans le gestionnaire ODBC
 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)
  `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:=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)
 
  `Faire quelque chose avec la base externe (ORACLE)
    Debut SQL
       SELECT ENAME FROM EMP INTO :aTitles
    Fin SQL
 
  `Refermer la connexion ouverte avec la commande SQL LOGIN
    SQL LOGOUT
  `La DSN courante redevient la base interne
    $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.

 
PROPRIÉTÉS 

Produit : 4D
Thème : Prise en main
Nom intl. : External connections

 
PAGE CONTENTS 
 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

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