4D v16

Connexions externes

Accueil

 
4D v16
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

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

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