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 :

BDD différente pour chaque dataset


Sujet :

Bases de données Delphi

  1. #1
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut BDD différente pour chaque dataset
    Voila j ai une relation maitre/détail,

    j'ai donc deux dataset.

    Le premier tape sur la BDD1 et le second Sur la BDD2.

    J'ai donc écrit les select de manière classique a savoir :

    SELECT * FROM BDD1.Tablex ....
    SELECT * FROM BDD2.Tabley ....


    Mon TSQLconnection est connecté par defaut sur BDD1.


    Delphi me met un message d'erreur comme si il ne comprenait pas le BDD2.Tabley


    Est ce que ma méthode est la bonne ?


    Les bases de données sont sur le meme serveur je n'ai donc qu un seul TSQLConnection.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 124
    Points : 136
    Points
    136
    Par défaut
    chaque dataset est bien connecté à une database?

  3. #3
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    Pour ce qui est du maitre j'ai comme cela :

    1. un TSQLquery connecté à un TSQLconnection
    2. un TdatasetProvider connecté au TSQLquery
    3. un TclientDataSet connecté au Tdatsetprovider
    4. un datasource connecté au Tdatasetprovider


    la requete dans le SQLquery est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM BDD1.Tablex
    Pour ce qui est du détail j'ai comme cela :
    1. un TSimpleDataset connecté au meme TsqlConnection que le maitre
    2. un TdataSource connecté au Tsimple data set


    la requete dans le TSimpleDataset est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM BDD2.TableY
    Aprés dans le datasource du détail

    j'ai mis le datasource du maitre dans la property MasterSource
    et aprés j'ai fait le lien avec la property Masterfields


    Et aprés il me met un message d'erreur, parceque quand il construit la requete, il fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [...] where champ1='4' and champ2='1' .Tabley
    Il a inséré la partie where entre le BBD2 et le .tableY


    J'espere avoir été clair lol

  4. #4
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut
    Quel est le type de BDD (SQL Server, Oracle, ...)

  5. #5
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    Mysql

  6. #6
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Si c'est deux bases de données disctinctes tu es obligé d'avoir un TSQLConnection pour chaque.

    Sinon pouruqoi tu ne tests pas avec une requete de jointure ?

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT * FROM BDD1.Tablex as T1 inner join BDD2.TableZ as T2 on T1.Commun = T2.Commun
    Where T1.Champ1 = '4' ...
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  7. #7
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    WAAOOOOWWW,

    Donc ca va m'ouvrir une connection par base de données sur le serveur ???
    C'est de la folie.

    Alors les jointures je ne faisais que ça quand je me servais du protocole bas niveau.

    Le truc c'est que je suis débutant, vace ce nouveau système et j'essaye de m'y retrouvé un peu.
    Donc l'idée de jointure pour moi serait idéal, a condition que chaque composant soit capable de groupé les informations aux qu'elles il accéde.

    Je m'explique :

    Si la base renvoit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Champ1 | Champ2
    A         |     1
    A         |     2
    A         |     3
    B         |     1
    B         |     2
    C         |     1
    Il va falloir que mon dblookupcombobox numéro ne m'affiche que A B C
    et que en fonction du choix le second dblookupcombobox affiche les possibilités du champ2.

    Et pour le moment je ne sais pas faire

  8. #8
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    personne n a jamais été confronté a ce probleme ??

  9. #9
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut
    Si mais en SQL Server.
    Si BDD1 et BDD2 alors créer des "view" de BDD2 dans BDD1. De cette manière ton client Delphi n'a qu'une seule connexion.

  10. #10
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    oui mais mysql ne gère pas les vues lol

    bon j'ai avancé un petit peu , j'arrive a un truc qui marche a peu prés.

    je faisais ça pou faire ma 'jointure', et cela ne fonctionnait pas:

    Aprés dans le datasource du détail

    j'ai mis le datasource du maitre dans la property MasterSource
    et aprés j'ai fait le lien avec la property Masterfields


    Et aprés il me met un message d'erreur, parceque quand il construit la requete, il fait :

    Code :
    [...] where champ1='4' and champ2='1' .TableyIl a inséré la partie where entre le BBD2 et le .tableY
    Donc ce que je fait maintenant c est que dans mon second dataset je précise la clause where a savoir :

    Ca à l'air de marcher, emme si cela me semble trés bancal.

    Est ce que c'est la bonne méthode ????

  11. #11
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut
    Au lieu de faire tes jointures par une requête sql tu peut faire tes jointures en reliant effectivement l'objet TQuery de la table détail au dataset de la table maitre. Il faut par contre avoir les index secondaires et les clefs primaires appropriées pour que celà fonctionne bien

Discussions similaires

  1. fond d'écran différent pour chaque écran
    Par virgul dans le forum Windows XP
    Réponses: 3
    Dernier message: 22/11/2007, 16h45
  2. Charset et Interclassement différent pour chaque ligne
    Par berceker united dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 28/08/2007, 23h44
  3. Réponses: 5
    Dernier message: 13/06/2007, 11h33
  4. [2.0 WebPart]EditorZone différente pour chaque Webpartzone
    Par globeriding dans le forum ASP.NET
    Réponses: 1
    Dernier message: 27/04/2007, 12h20
  5. Icones différentes pour chaque bureau ?
    Par sala|-| dans le forum KDE
    Réponses: 6
    Dernier message: 01/02/2007, 20h17

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