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

  1. #21
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 055
    Points
    19 055
    Par défaut
    Salut à tous.

    Citation Envoyé par Cantador
    tu as raison à propos du vocabulaire parce que au bout d'un moment on ne sait plus de quoi on parle.
    Je ne te le fais pas dire. Surtout que je réponds à plusieurs sujets et parfois, et je risque de m’emmêler les pinceaux.

    Citation Envoyé par Cantador
    ce code crée bien la procédure sans erreur et son exécution également
    Avant de te fournir la procédure stockée, je l'ai testé et je peux t'assurer qu'elle fonctionne avec le petit jeu d'essai.

    Je n'arrive pas à comprendre comment tu peux avoir autant de problèmes avec quelque chose d'aussi simple à faire.

    Citation Envoyé par Cantador
    le test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iif(:v_dpl is null,dpl,:v_dpl)
    me semble curieux,
    Il n'y a rien de curieux. C'est un "if ... then ... else ... end if" tout simplement.
    Si le premier paramètre de cette fonction est vrai, tu prends le deuxième paramètre, sinon tu prends le troisième paramètre
    --> http://firebirdsql.org/refdocs/langrefupd20-iif.html

    Cela se traduit par : Si :v_dpl is null est vrai alors on applique dpl sinon on applique :v_dpl fin_si.

    Je teste la colonne dpl de la table Player. Si elle est NULL, je remets la même valeur contenu dans la table Pacman sinon je mets celle de la table Player.

    Citation Envoyé par Cantador
    la première condition doit être vraie pour que la 2ème soit vraie, sinon c'est la troisième c'est bien ça ?
    Oui, c'est cela !

    Citation Envoyé par SergioMaster
    Vérifies ta base, il doit y avoir des transactions mal fermées
    C'est ce que je crois aussi. Il ferai mieux de fermer son serveur et de l'ouvrir à nouveau.
    Et je pense aussi qu'il a un environnement mal foutu.

    Citation Envoyé par Cantador
    je précise que cette relation n'est pas codée dans la base..(il n'y a pas de Foreign Keys)
    Oui et alors ? La foreign key sert à rendre intègre ta base de données. Cela n'a aucun rapport avec ce que tu essayes de faire.

    Citation Envoyé par Cantador
    ça sent une erreur dans ma base de données.
    Non. Tu as trop de threads qui sont encore ouverts. Il faut tous les fermer.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  2. #22
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    @Artemus24
    @SergioMaster

    Vérifies ta base, il doit y avoir des transactions mal fermées
    oui elles car elles n'aboutissent pas...

    Bon, je vous propose de faire un break..
    je nettoie tout, je reconstruit mes tables, je simplifie..

    et je refais un test

    @bientôt

  3. #23
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    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 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    par "vérifies ta base" je sous-entendais utilises Gfix
    Code DOS : Sélectionner tout - Visualiser dans une fenêtre à part
    gfix -user SYSDBA -password masterkey dbserver:/db/mydb.fdb -v -f -n
    si jamais il y avait des erreurs celle-ci seront reportées si c'était le cas alors tu pourrais la réparer toujours avec Gfix
    Code DOS : Sélectionner tout - Visualiser dans une fenêtre à part
    gfix -user SYSDBA -password masterkey dbserver:/db/mydb.fdb -v -f -m
    un backup (n.b. un backup procède a un sweep) puis un restore plus tard ta base devrait à nouveau être opérationnelle

    tu pouvais aussi simplement arrêter toutes les transactions dites dans les limbes (limbo) mais avant tout le vérifier en regardant dans les tables de monotoring
    avant de faire tout ça

    je nettoie tout, je reconstruit mes tables, je simplifie..
    là tu me fais l'impression d'être comme mon voisin : dès qu'un pc ne fonctionne plus correctement il reformatte
    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

  4. #24
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    @SergioMaster :

    Je crois qu’il est temps que quelqu’un te le dise :
    Tu n’as AUCUN humour et tu ne fais rire PERSONNE !

    Tu nous bombardes de :

    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Peut-être voudrais-tu inconsciemment lui ressembler ?
    Si c’est ton objectif, tu as du pain sur la planche..

    Ton voisin n’est peut-être pas très futé, mais lui, il a de l’humour (je le connais)
    Et c’est ce qui fait sa force..

    D’ailleurs, ne dit-on pas que rire ça vaut un bifteck ?

    Avoir de l’humour, ce n’est pas donné à tout le monde..
    Je dirai même que c’est un don ou art qui se cultive.

    Ça ne s’apprend pas, comme l’informatique !

    Dans la vie, il y a le savoir faire et le savoir être.

    Dommage que tes qualités professionnelles ne te permettent pas d’appréhender
    Les rudiments de base de la vie en société.

  5. #25
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    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 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    Puisse que tu me répond comme ça , c'est que tu n'as pas le même sens de l'humour que moi.
    Si mon avis ne t'intéresse pas ce n'était pas la peine d'en arriver à l'agression épistolaire.

    un simple "je l'avais fait" ou "je n'y avais pas songé" aurait suffit
    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

  6. #26
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    tu n'as pas le même sens de l'humour que moi
    on ne peut rien te cacher..

    Si mon avis ne t'intéresse pas
    personne ne t'oblige à me répondre..

    un simple "je l'avais fait" ou "je n'y avais pas songé" aurait suffit
    maintenant, tu me souffles les mots à dire ?
    n'as tu pas le sentiment de faire un peu autocrate ?
    attention, à ne pas attraper la grosse tête et faire les demandes et les réponses.

    au lieu de te référer à des personnages illustres et exceptionnels,
    tu peux chercher autour de toi des modèles plus simples, et plus humbles aussi et qui fonctionnent
    très bien comme par exemple :

    - Paul TOTH
    - ShaiLeTroll
    - Artemus24

    je t'invite également à sortir de ta bulle informatique de temps en temps...

    pour en revenir à ma question, Artemus24 m'a beaucoup aidé sur cette procédure...
    c'est normal que à mon tour je fasse des efforts pour comprendre pourquoi elle fonctionne chez lui et pas chez moi.
    et quand j'écris break, ça veut dire qu'on fait une pause dans les débats et que la balle est dans mon camp.

    maintenant, que les choses ont été dites, j'espère que cela ira mieux entre nous.

    je ne suis pas rancunier.

  7. #27
    Membre à l'essai
    Profil pro
    Directeur technique
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 23
    Points
    23
    Par défaut
    Bonjour Contador,

    J'aurai réalisé simplement cette requête UPDATE comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    update pacman
      set pacman.vig=1,
      pacman.dpl=(select player.dpl from player where player.icom=pacman.icom and player.rcad=pacman.rcad)
    WHERE
      (select player.dpl from player where player.icom=pacman.icom and player.rcad=pacman.rcad) is not null
      and
      pacman.icom is not null
      and
      pacman.rcad is not null
    Et pour traiter les nouveaux enregistrements / modifications :

    - Trigger Before Insert, Update sur la table PACMAN
    - Trigger After Insert, Update sur la table PLAYER

  8. #28
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    @foucoudav:

    merci foucoudav de t'intéresser au sujet proposé.
    juste un détail, bien que j'ai fait du vélo dans ma jeunesse, mon pseudo est cantador et non contador..
    ta solution fonctionne, mais ne règle pas l'annulation des dates et ne crée pas de procédure stockée..

    et depuis depuis le break, j'ai beaucoup avancé..
    j'ai d'ailleurs trouvé ce qui n'allait pas et il faut aussi avoir à l'esprit que je bosse sur une appli à livrer à un administrateur.

    @Artemus24 :

    la table PLAYER est une table extérieure récupérée dont je ne maîtrise pas les données..
    et il y avait des doublons absolus dedans..

    j'ai donc créer un compteur dans la table PLAYER et créer une procédure permettant de les supprimer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    CREATE PROCEDURE DELETE_DOUBLON
    AS
    BEGIN
    DELETE
    FROM PLAYER T1
    WHERE T1.CODEID < ANY (SELECT CODEID
    FROM   PLAYER T2
    WHERE  T1.CODEID <> T2.CODEID
    AND T1.ICOM = T2.ICOM
    AND T1.RCAD = T2.RCAD);
    END
    ;
    j'ai ensuite légèrement modifié ta solution dans l'hypothèse où une Maj de la table PLAYER modifierait les relations avec PACMAN :

    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
    17
    18
    CREATE PROCEDURE MAJ
    AS
    DECLARE VARIABLE V_ICOM VARCHAR(5);
    DECLARE VARIABLE V_RCAD VARCHAR(6);
    DECLARE VARIABLE V_DPL DATE;
    begin
    
     update pacman 
      set vig = null
    
      for  select icom, rcad, dpl from player
      into :v_icom, :v_rcad, :v_dpl
      do update pacman 
      set dpl = iif(:v_dpl is null,null,:v_dpl), vig=1 
      where icom =:v_icom and rcad =:v_rcad;
    end
    ;
    le premier Null permet de tout effacer (au cas où les relations changeraient)
    le deuxième Null me permet d'annuler une date en cas de modification ultérieure des dates.
    évidemment tout ceci résulte de l'analyse de la situation..
    et j'ai aussi créer des index sur les champs en relation afin d'accélérer la procédure.

    et tout marche nickel en 7 secondes !

    merci

  9. #29
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 055
    Points
    19 055
    Par défaut
    Salut Cantador.

    En faisant une recherche sur le net, il est dit que Cantador est un "chanteur de profession".
    Dois-je comprendre que tu es passé maître dans l'art de ta profession ?

    Pour ce qui est des doublons dans la table Player, sur quel critère vas-tu supprimer les lignes en double ?
    Vu le peu d'information que tu nous as communiqué jusqu'à présent sur cette table, le mieux est de le faire sur la date "DPL".
    Autrement dit, tu dois conserver la ligne ayant la plus grande valeur de la date "DPL".

    Maintenant, tu introduis une nouvelle colonne "codeId" dont je n'avais pas connaissance.
    Il faut donc tenir compte d'une part de la date et d'autre part de codeid, comme dans mon exemple, ci-après.

    Pour ce qui est de la table pacman, tu fais deux passages, l'une pour mettre la colonne vig à NULL, dans toutes les lignes de la table et l'autre pour mettre à jour la table à partir de la table player.
    Le mieux serait de faire un seul passage, pour une question de performance.

    D'autre part, la fonction iif(... , ... , ...) ne te sert plus à rien car si la colonne v_dpl est à NULL tu mets NULL et si elle n'est pas NULL, tu mets son contenu. Cela revient à faire "set dpl=:v_dpl" dans tous les cas.

    La nouvelle solution que je te propose est de partir de la table pacman et faire une jointure "left outer join" vers la table player.
    De plus, il faut faire un regroupement sur le couple (icom ; rcad) afin de supprimer les lignes en double. Le résultat est une fusion entre les deux tables (aucune suppression de lignes).

    A partir de cette fusion, tu n'es plus obligé de faire deux passages pour mettre à jour la table pacman, mais un seul.
    J'utilise une astuce avec la variable "v_test", qui consiste à tester la colonne "rcad" afin de savoir si la jointure s'est faite ou pas.
    Vu que cette colonne ne peut pas être à NULL dans la table Player, en faisant la jointure, si elle est à NULL, cela signifie que la jointure n'existe pas.
    Donc si la date "DPL" est à NULL, c'est quelle est ainsi dans la table Player. Voici ce que je propose :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    CREATE DATABASE '..\Data\Base.fdb' page_size 4096 DEFAULT CHARACTER SET WIN1252;
     
    -- =============================
    -- Création de la table 'PLAYER'
    -- =============================
     
    CREATE TABLE player (
      CODEID INTEGER,
      ICOM   VARCHAR(05),
      RCAD   VARCHAR(06),
      DPL    DATE
    );
     
    -- =======================
    -- Insertion dans 'PLAYER'
    -- =======================
     
    insert into player (codeid, icom, rcad, dpl) values (1, 'aaaaa', 'xxxxxx', NULL);
    insert into player (codeid, icom, rcad, dpl) values (2, 'bbbbb', 'xxxxxx', '2016-09-13');
    insert into player (codeid, icom, rcad, dpl) values (3, 'bbbbb', 'xxxxxx', '2016-09-12');
    insert into player (codeid, icom, rcad, dpl) values (4, 'bbbbb', 'xxxxxx', '2016-09-13');
    insert into player (codeid, icom, rcad, dpl) values (5, 'bbbbb', 'xxxxxx', '2016-09-10');
    insert into player (codeid, icom, rcad, dpl) values (6, 'ddddd', 'yyyyyy', '2016-09-11');
     
    -- ==================
    -- Vidage de 'PLAYER'
    -- ==================
     
    select * from player;
     
          CODEID ICOM   RCAD           DPL
    ============ ====== ====== ===========
               1 aaaaa  xxxxxx      <null>
               2 bbbbb  xxxxxx 2016-09-13
               3 bbbbb  xxxxxx 2016-09-12
               4 bbbbb  xxxxxx 2016-09-13
               5 bbbbb  xxxxxx 2016-09-10
               6 ddddd  yyyyyy 2016-09-11
     
    commit;
     
    -- =============================
    -- Création de la table 'PACMAN'
    -- =============================
     
    CREATE TABLE pacman
    ( ICOM   VARCHAR(05),
      RCAD   VARCHAR(06),
      VIG    INTEGER,
      DPL    DATE
    );
     
    -- =======================
    -- Insertion dans 'PACMAN'
    -- =======================
     
    insert into pacman (icom, rcad, vig, dpl) values ('aaaaa', 'xxxxxx', NULL, '2016-09-01');
    insert into pacman (icom, rcad, vig, dpl) values ('bbbbb', 'xxxxxx', NULL, '2016-09-01');
    insert into pacman (icom, rcad, vig, dpl) values ('ccccc', 'yyyyyy', NULL, '2016-09-01');
    insert into pacman (icom, rcad, vig, dpl) values ('ddddd', 'yyyyyy', NULL, '2016-09-01');
     
    insert into pacman (icom, rcad, vig, dpl) values ('ddddd', 'yyyyyy', NULL, '2016-09-01');
    insert into pacman (icom, rcad, vig, dpl) values ('ccccc', 'yyyyyy', NULL, '2016-09-01');
    insert into pacman (icom, rcad, vig, dpl) values ('bbbbb', 'xxxxxx', NULL, '2016-09-01');
    insert into pacman (icom, rcad, vig, dpl) values ('aaaaa', 'xxxxxx', NULL, '2016-09-01');
     
    -- ==================
    -- Vidage de 'PACMAN'
    -- ==================
     
    select * from pacman;
     
    ICOM   RCAD            VIG         DPL
    ====== ====== ============ ===========
    aaaaa  xxxxxx       <null> 2016-09-01
    bbbbb  xxxxxx       <null> 2016-09-01
    ccccc  yyyyyy       <null> 2016-09-01
    ddddd  yyyyyy       <null> 2016-09-01
    ddddd  yyyyyy       <null> 2016-09-01
    ccccc  yyyyyy       <null> 2016-09-01
    bbbbb  xxxxxx       <null> 2016-09-01
    aaaaa  xxxxxx       <null> 2016-09-01
     
    commit;
     
    -- =================
    -- procédure stockée
    -- =================
     
    SET TERM $;
     
    create procedure maj
    as
      declare variable v_icom varchar(05);
      declare variable v_rcad varchar(06);
      declare variable v_test varchar(06);
      declare variable v_dpl  date;
     
    begin
    -- ----------------------------------
    -- Suppression des doublons de Player
    -- ----------------------------------
     
      delete from player as t1
      where exists (
          select 1
          from player as t2
          where  t2.icom = t1.icom
            and  t2.rcad = t1.rcad
            and (t2.dpl  > t1.dpl or (t2.dpl = t1.dpl and t2.codeid > t1.codeid))
    );
     
    -- ---------------------
    -- Mise à jour de Pacman
    -- ---------------------
     
      for           select  t1.icom, t1.rcad, max(t2.rcad), max(t2.dpl)
                      from  pacman as t1
           left outer join  player as t2
                        on  t2.icom = t1.icom and t2.rcad = t1.rcad
                  group by  t1.icom, t1.rcad
      into :v_icom, :v_rcad, :v_test, :v_dpl
      do if (:v_test is null)
         then update pacman set dpl=null,   vig=null where icom=:v_icom and rcad=:v_rcad;
         else update pacman set dpl=:v_dpl, vig=1    where icom=:v_icom and rcad=:v_rcad;
    end$
     
    SET TERM ;$
     
    commit;
     
    execute procedure maj;
     
    -- ========
    -- Résultat
    -- ========
     
    select * from player;
     
          CODEID ICOM   RCAD           DPL
    ============ ====== ====== ===========
               1 aaaaa  xxxxxx      <null>
               4 bbbbb  xxxxxx 2016-09-13
               6 ddddd  yyyyyy 2016-09-11
     
    select * from pacman;
     
    ICOM   RCAD            VIG         DPL
    ====== ====== ============ ===========
    aaaaa  xxxxxx            1      <null>
    bbbbb  xxxxxx            1 2016-09-13
    ccccc  yyyyyy       <null>      <null>
    ddddd  yyyyyy            1 2016-09-11
    ddddd  yyyyyy            1 2016-09-11
    ccccc  yyyyyy       <null>      <null>
    bbbbb  xxxxxx            1 2016-09-13
    aaaaa  xxxxxx            1      <null>
     
     
    exit;
     
    Appuyez sur une touche pour continuer...
    Si dès le départ, tu nous avais donné toutes les informations pour mener à bien ton problème, on n'aurait pas perdu autant de temps !

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  10. #30
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    par une sorte de clairvoyance, tu comprends maintenant pourquoi, j'hésitais à poser cette question sur le forum..

    En faisant une recherche sur le net, il est dit que Cantador est un "chanteur de profession".
    Dois-je comprendre que tu es passé maître dans l'art de ta profession ?
    maître chanteur, c'est toujours mieux que de chanter comme moi !
    de toute façon, même la chanson devient artificielle (http://www.flow-machines.com/flowcom...ith-ai/http://)
    j'interviens sur mon pseudo sinon ça va devenir cracator, crontador2 etc..

    http://www.signification-prenom.com/...us.htmlhttp://

    intéressant non ?
    et le 24, c'est ton âge ?

    Maintenant, tu introduis une nouvelle colonne "codeId" dont je n'avais pas connaissance.
    j'ai introduit ce compteur pour des raisons de facilité afin de traiter les doublons bien que je sais qu'on peut faire du ranking sur certains SGBD et les dates n'avaient aucune importance jusqu'à ce jour
    et donc, j'avais choisi de prendre le dernier doublon.

    mais, je viens d'obtenir à l'instant d'autres informations qui m'indiquent que je dois désormais tout conserver dans la table PLAYER et mettre en place une relation 1-N avec d'autres tables !
    le modèle précédent a vécu !

    je dois donc tout revoir, mais cela n'enlève nullement l'intérêt de ta dernière proposition que je vais tester et étudier.
    mais plus tard cependant, car je n'ai plus le temps désormais..
    tu as bien gagné ton +1.

    merci Artemus24
    @bientôt

  11. #31
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 055
    Points
    19 055
    Par défaut
    Salut Cantador.

    Citation Envoyé par Cantador
    de toute façon, même la chanson devient artificielle
    Oui, je suis au courant car je lis régulièrement l'actualité de Developpez, avec entre autre ceci :
    --> http://www.developpez.com/actu/10450...mplet-en-2017/

    Citation Envoyé par Cantador
    et le 24, c'est ton âge ?
    Mais non, car je devrais changer mon pseudo chaque année.
    Il s'agit du département français où j'habite, donc de la Dordogne.

    Citation Envoyé par Cantador
    mais plus tard cependant, car je n'ai plus le temps désormais..
    Prends ton temps.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  12. #32
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    la Dordogne ?
    Pièce jointe 221402


    que c'est beau !

    24 ça permet de rester jeune, un peu comme le personnage de ton avatar..

    @+

  13. #33
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 055
    Points
    19 055
    Par défaut
    Salut Cantador.

    Voici la photo entière de mon avatar :

    L'âge d'Artemus Gordon quand la photo a été prise se situe entre 1965 et 1969.
    Et comme Ross Matin (son vrai nom est Martin Rosenblatt) est né le 22 mars 1920, il avait entre 45 et 49 ans.
    Il est mort le 3 juillet 1981 d'une crise cardiaque en jouant au tennis.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  14. #34
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    Artemus24, va à la pêche, ramasse des escargots, plante des tomates, fait du Wamp
    mais ne joue pas au tennis surtout après un certain âge..

  15. #35
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    @Artemus24 :

    j'ai repris mon application et terminé les modifs plus vite que prévu et tout marche super !
    Assez débrouillard sur delphi, j'en ai profité pour améliorer encore le design.
    une application n'est jamais vraiment terminée..

    je me sers beaucoup des composants devexpress (chers) qui sont fantastiques mais nécessitent néanmoins une programmation assez particulière.

    j'en ai profité pour jeter un œil sur ta requête que je conserve dans mes archives :
    Effectivement le traitement est meilleur car tu forces la jointure avec le LEFT OUTER JOIN ce qui permet
    pour les cas où la relation ne se fait pas de mettre vif et dpl à nul mais uniquement ceux-là, donc moins de passage et donc plus rapide.

    le plus dur, c'est ce je suis capable d'écrire tout ça avec une requête classique mais
    ce qui me gêne un peu c'est la syntaxe de la création de la procédure stockée, vu que je ne les utilisais pas jusqu'à maintenant.
    d'où mes questions sur le sujet..
    mais ça vient assez vite.

    merci Artemus24 pour ta réactivité.

Discussions similaires

  1. [MySQL] lancement procédure stockée chaque jour à 20h
    Par Vetchostar dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/11/2008, 08h27
  2. [1.x] [AJAX] drop_receiving_element et mise à jour de deux zones distinctes
    Par Giovanny Temgoua dans le forum Symfony
    Réponses: 8
    Dernier message: 21/05/2008, 18h29
  3. [Procédure Stockée] mettre à jour plusieurs lignes
    Par PoichOU dans le forum Langage SQL
    Réponses: 15
    Dernier message: 16/05/2007, 16h18
  4. Mise à jour de deux bases de données
    Par antoine1504 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 29/03/2007, 19h42
  5. Réponses: 1
    Dernier message: 27/04/2006, 18h22

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