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 siPour tester cet exemple, dans la boîte de dialogue principale de la base "4D SQL Code Samples", cliquez sur le bouton Connexion à ORACLE.