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

Bases de données Delphi Discussion :

on peut --DBGrid plusieur DataSource-- ?


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2013
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Albanie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2013
    Messages : 75
    Points : 62
    Points
    62
    Par défaut on peut --DBGrid plusieur DataSource-- ?
    salut
    j'ai deux base de données access
    bd1.mdb contient un tableux 'book1' et 2 champs ('book_name' et 'edit_name') 80 enregistrements
    bd2.mdb ontient un tableux 'book2' et 2 champs ('book_name' et 'edit_name') 90 enregistrements
    les champs des deux BD de méme type (text)
    j'ai utilisée ADO

    Le but finale est chercher dans les deux BD et utilise un seul dbgrid

    1-Je veux rendre les données des deux BD dans un seul dbgrid Afin de montrer des résultats de recherche
    Est-ce que il ya une instruction par exemple
    DBGrid1.DataSource:=DataSource1 + DataSource2;
    2-faire un filtrage sure les deux BD dans un seul dbgrid
    Essayez le code Situé au pied, mais les données de deuxième BD N'affiche pas

    Je sais que le code est incorrect, mais afin de comprendre Qu'est-ce que je veux
    et merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    if edit1.Text <>'' then
    begin
    DBGrid1.DataSource:=DataSource1;
    DBGrid1.DataSource:=DataSource2;
    ADOTable1.Filter :='book_name '+ quotedstr(edit1.Text +'*');
    ADOTable1.Filtered :=true;
    ADOTable2.Filter :='book_name '+ quotedstr(edit1.Text +'*');
    ADOTable2.Filtered :=true;
    end
    else
    begin
    ADOTable1.Filtered :=false;
    ADOTable2.Filtered :=false;
    end;
    Delphi installés : Tokyo
    framwork: VCL
    SGBD : Firebird 2.5
    générateurs Etats : FastReport, QuickReport
    OS : Window 7

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    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 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    A ma connaissance ce n'est pas possible , a moins que access n'accepte les interrogations sur 2 bases de données différentes auquel cas une requête d'UNION deviendrai possible

    à essayer , sans garantie :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT * FROM TABLEDB1 WHERE book_name LIKE :Param
    UNION
    SELECT * FROM TABLEDB2 IN 'C:\PathTo\Db2.mdb' WHERE Book_name LIKE :Param

    P.S. j'ai toujours eu les filtres en horreur et propose donc une version SQL paramétrée avec clause WHERE , plutôt que LIKE on préférera utiliser STARTING WITH si le filtre correspond qu début du nom du livre
    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é
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2012
    Messages : 111
    Points : 171
    Points
    171
    Par défaut
    bon jour
    si est possible fusioner les deux table dans une seule et ajouter un champ 'tab' qui indique si l'enregistrement est dans la table 1 ou 2 ça sera plus simple
    a+

  4. #4
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2013
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Albanie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2013
    Messages : 75
    Points : 62
    Points
    62
    Par défaut
    merci pour votre reponse
    Delphi installés : Tokyo
    framwork: VCL
    SGBD : Firebird 2.5
    générateurs Etats : FastReport, QuickReport
    OS : Window 7

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

Discussions similaires

  1. Repeater de plusieurs datasources
    Par yazen dans le forum ASP.NET
    Réponses: 10
    Dernier message: 12/02/2008, 13h51
  2. [DOM] Transformation XSL : SAXException: Un DOM ne peut posséder plusieurs racines
    Par pouillou dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 20/06/2007, 09h50
  3. 1 DataGrid pour plusieurs Datasources
    Par Rincevent76 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 17/01/2007, 19h00
  4. Réponses: 8
    Dernier message: 06/04/2006, 18h45
  5. dbgrid - plusieurs tables
    Par Fxg dans le forum Bases de données
    Réponses: 3
    Dernier message: 19/02/2004, 21h42

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