IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Firebird Discussion :

Interroger une base depuis une autre


Sujet :

SQL Firebird

  1. #1
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mai 2006
    Messages : 249
    Points : 165
    Points
    165
    Par défaut Interroger une base depuis une autre
    Bonjour tout le monde;
    Est ce que c'est possible d'interroger une base de données depuis une procédure d'une autre base de données?
    C-à-dire, dans une procédure P d'une base de données B1, je cherche un enregistrement dans une table d'une autre base de donnée B2.
    J'espère que la réponse soit clère car la question n'est pas trop clère.
    Deux personnes n'apprennent pas, un arrogant et un timide.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 038
    Points : 40 943
    Points
    40 943
    Billets dans le blog
    62
    Par défaut
    une réponse claire mais en Anglais , que j'ai la flemme de retraduire si tôt le matin
    Citation Envoyé par http://www.firebirdfaq.org
    Firebird 2.5 introduces a way to query the external data sources in PSQL. EXECUTE STATEMENT has been extended with a special clause: ON EXTERNAL DATA SOURCE, and you can supply a different Firebird database as a data source. This means that you can fetch data from another database into PSQL variables. You cannot do JOINs with tables in different databases, but this is a nice start. Example:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    execute block returns (emp_no smallint) as
    begin
    FOR EXECUTE STATEMENT 'select emp_no from employee'
    ON EXTERNAL DATA SOURCE 'localhost:employee' AS USER 'sysdba' PASSWORD 'masterkey'
    INTO :emp_no
    DO SUSPEND;
    end
    Donc réponse : Oui avec la version 2.5
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mai 2006
    Messages : 249
    Points : 165
    Points
    165
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    You cannot do JOINs with tables in different databases, but this is a nice start.
    C'est vraiment un bon début et même suffisant dans beaucoup de cas;
    Merci beaucoup cher ami.
    Deux personnes n'apprennent pas, un arrogant et un timide.

  4. #4
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mai 2006
    Messages : 249
    Points : 165
    Points
    165
    Par défaut
    Bonsoir tout le monde; On peut même faire des jointures, il suffit seulement de la préparer dans une chaine de caractère cad :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      BEGIN 
     ST = 'select count(col) as n from source where col = '||''||RC||'';
     EXECUTE STATEMENT :ST ON EXTERNAL DATA SOURCE 'localhost:base2' AS USER 'SYSDBA' PASSWORD 'masterkey' INTO :N;
     IF (N = 0) THEN UPDATE TRANSPORTEUR SET VALIDE = 0 WHERE RC = :RC;
    Je l'ai essayé et ça marche très bien. Pourquoi ils disent que les jointures ne sont pas possibles???
    Deux personnes n'apprennent pas, un arrogant et un timide.

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Février 2006
    Messages : 562
    Points : 859
    Points
    859
    Par défaut
    Euh .... je vois pas de jointure dans ta requete ?

  6. #6
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mai 2006
    Messages : 249
    Points : 165
    Points
    165
    Par défaut
    Citation Envoyé par ddaime Voir le message
    Euh .... je vois pas de jointure dans ta requete ?
    C'est vrai ce n'est pas une jointure
    Deux personnes n'apprennent pas, un arrogant et un timide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/10/2015, 17h16
  2. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  3. [AC-2007] Copier une table depuis une base vers une autre
    Par Triton972 dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/11/2009, 19h27
  4. Réponses: 2
    Dernier message: 01/12/2008, 18h43
  5. Ouvrir une base depuis une base
    Par edhos dans le forum VBA Access
    Réponses: 1
    Dernier message: 31/01/2008, 07h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo