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

SGBD Perl Discussion :

[Problème] request dans deux BD sybase


Sujet :

SGBD Perl

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 98
    Points : 26
    Points
    26
    Par défaut [Problème] request dans deux BD sybase
    Bonjour à tous,

    Base RP
    IDEL | IDRP
    __________
    1 | 99
    2 | 98
    3 | 97
    4 | 96
    5 | 95
    6 | 94
    7 | 93
    8 | 92
    9 | 91
    Base EL
    IDEL
    ___
    1
    2
    3
    4
    5
    6
    7
    8
    9
    mon code
    [CODE]
    while (my ($idelBDRP,$idrp) = $request_rp -> fetchrow_array)
    {
    while (my ($idelBDEL) = $request_el -> fetchrow_array)
    {
    if($idelBDEL eq $idelBDRP)
    {
    print FIC ("$idrp");
    }
    }
    }
    [/CODEJ je voudrai qu'il consulte la BDRP voir si il trouve IDEL correspondande a IDEL de BDEL si oui il maffiche sa valeur IDRP.
    Le problème le voici il compare a chaque fois la premier valeur idelBDRP a idelBDEL il ne s'incrément pas

    Je sens comme une odeur de j'ai rien compris à ce qu'il as dit donc si vous avez des question faite moi en part.

    D'avance merci,
    Maloute.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 98
    Points : 26
    Points
    26
    Par défaut
    L'instruction foreach

    L'instruction foreach permet d'effectuer une boucle qui parcourt une liste. A chaque tour de boucle, l'élément de la liste est affecté à la variable $VAR. LISTE peut par exemple être un tableau, dont l'instruction foreach va parcourir les enregistrements.

    La syntaxe de cette expression est la suivante :

    foreach $VAR (LISTE) {
    liste d'instructions;

    }
    __________________________________________________________________
    j'ai peut être la possibilité d'instauré cette fonction mais je c'est pas comment
    ou une autre idée ou boucle

    EDIT1: je pense pas que cette boucle peut m'aider :'(
    EDIT2: si tout cela plus haut n'est pas possible pouquoi pas mettre les valeurs dans un tableaux 2dimension pour les comparer ensuite
    quand pensé vous vraiment?

  3. #3
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    J'en pense que normalement tu devrais faire ça avec une simple requête SQL... Qu'est-ce qui t'en empêche ? Les bases de données relationnelles sont faites pour ça.

    --
    Jedaï

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 98
    Points : 26
    Points
    26
    Par défaut
    C'est à dire faire ma comparaison directement dans ma requête sql? commentpui-je mit prendre? peut tu maider ou me mettre sur la voix?

    D'avance merci.

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Est-ce que RP et EL sont des "bases", ou des "tables". Si ce sont des bases, est-ce qu'elle sont sur le même dataserver, ou sur des dataserver différents ?

    Si elles sont sur le même dataserver:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select a.IDRP from RP..table1 a, EL..table2 b
    where a.IDEL = b.IDEL
    devrait te donner ce que tu cherche (si j'ai bien compris...)

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 98
    Points : 26
    Points
    26
    Par défaut
    La connexion sybase pour les deux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $sybase = DBI->connect("dbi:Sybase:server=toto",titi, tata)
     
    or die "\nConnection Sybase: échoué       [ERREUR]$DBI::errstr\n\n";
    print "\nConnection Sybase: bien effectué             [OK]\n";
    }
    les requests
    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
    16
     
    sub sybase_request_El()
    {
    $request_el = $sybase->prepare("SELECT DBA._v_el.idel,
                                   FROM DBA._v_el");
    $request_el->execute() || die "Problème Requête EL Sybase : $DBI::errstr";
    print "\nRequête EL Sybase: bien effectué          [OK]\n";
    }
     
    sub sybase_request_Rp()
    {
    $request_rp = $sybase->prepare("SELECT DBA._v_rp.idel,DBA._v_rp.idrp
                                   FROM DBA._v_rp");
    $request_rp->execute() || die "Problème Requête RP Sybase : $DBI::errstr";
    print "\nRequête RP Sybase: bien effectué           [OK]\n";
    }
    si cela peut encore mieux expliquer mon probleme et voir si ce que tu ma proposer correspond

    D'avance merci.

  7. #7
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    mpeppler t'a donné la bonne solution : tu as une base de données relationnelle, alors utilise la !!

    --
    Jedaï

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 98
    Points : 26
    Points
    26
    Par défaut
    Comment je traite le résultat aussi je ne comprend pas trop pouvait vous me donner des explication sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select a.IDRP from RP..table1 a, EL..table2 b
    where a.IDEL = b.IDEL
    et comment le traiter !!

    D'avance merci beaucoup.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 98
    Points : 26
    Points
    26
    Par défaut
    et adapter à sybase il me met une erreur je pense de syntaxe
    le code est-il bon?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    my $request_id=undef;
    $request_id = $sybase->prepare("select a.DBA.Vue_RP.IDRP 
                                              from DBA.Vue_RP a, DBA.Vue_EL b
                                              where a.DBA.Vue_RP.idel = b.DBA.Vue_EL.idel");
    $request_id->execute() || die "Problème Requête Sybase : $DBI::errstr";
    print "\nRequête Sybase: bien effectué          [OK]\n";
    Edit: L'alias 'Vue_RP' est introuvable

  10. #10
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Il va falloir apprendre un peu de SQL.

    Lorsqu'on utilise des alias (cad "select ... from TABLE1 a, TABLE2 b" où a et b sont des alias de table) on va utiliser ces alias pour qualifier les colonnes, cad:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select a.col1, b.col2 from TABLE1 a, TABLE2 b where <conditions de jointures>
    et non pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select a.TABLE1.col1, b.TABLE2.col2 from ....
    Donc, dans le cas qui t'intérresse:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select a.IDRP 
               from DBA.Vue_RP a, DBA.Vue_EL b
             where a.idel = b.idel
    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 98
    Points : 26
    Points
    26
    Par défaut
    Il va falloir apprendre un peu de SQL.
    désoler normalement à mon age on joue à la console moi je joue avec des bases donc j'apprends au fur et à mesure.

    En te remerciant très chaleureusement par ton aide et tes explication sujet résolu merci beaucouq mpeppler et Jedai

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

Discussions similaires

  1. problème champ date dans deux tables
    Par sky88 dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/12/2010, 00h22
  2. problème insertion dans deux tables liées
    Par ryassinne dans le forum MySQL
    Réponses: 6
    Dernier message: 07/05/2010, 16h58
  3. Problème de boucle dans deux curseurs.
    Par amine1980 dans le forum PL/SQL
    Réponses: 2
    Dernier message: 13/11/2008, 15h52
  4. [css]problème d'attribution de classe dans deux listes
    Par Mitaka dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 24/11/2005, 18h05
  5. Réponses: 22
    Dernier message: 29/01/2005, 11h29

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