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 :

[Tokyo-MsSql] Améliorer commande sql


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 391
    Points : 189
    Points
    189
    Par défaut [Tokyo-MsSql] Améliorer commande sql
    Bonjour

    J'aurais une simple question pour spécialiste SQL

    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
         AQuery.Connection:=Fdonnees.DONNEESCONNECTION;
                   AQuery.SQL.TEXT := 'DELETE from poste WHERE RRECODE =:R and rregion=:M';
                   AQuery.ParamByName('R').asString:=comboregion.text;
                   AQuery.ParamByName('M').asString:=comboedit1.Items[rang];
                   AQuery.EXECUTE;
     
                   fdonnees.POSTETABLE.insert;
                   fdonnees.POSTETABLE.FieldByName('rrecode').asString := COMBOREGION.TEXT ;
                   fdonnees.POSTETABLE.FieldByName('rdirecteur').asString := espnom.TEXT ;
                   fdonnees.POSTETABLE.FieldByName('rregion').asString :=  esregion.TEXT;
                   fdonnees.POSTETABLE.FieldByName('rmail').asString :=   espMAIL.TEXT;
                   fdonnees.POSTETABLE.FieldByName('rtele').asString :=    esptel.TEXT;
                   fdonnees.POSTETABLE.FieldByName('radmin').asString :=   esadmin.TEXT;
                   fdonnees.POSTETABLE.POST;
    Ma question est a partir de la commande Query remplacer delete par Update et remplacer les données dans la table dans la meme ligne commande.

    Présentement je recherche l'enrégistrement la detruit pour ajouter les informations ca fonctionne mais.....



    Merci de votre aide

    Mario

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    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 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    la question est plus à poser dans le forum Langage SQL
    la piste me semble être l'utilisation de MERGE qui est un équivalent d'un Update or Insert
    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 é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
    Bonjour,
    Si ta table est indexée, tu exécutes une commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        fdonnees.POSTETABLE.FindKey...
    et ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
         fdonnees.POSTETABLE.Edit;
         fdonnees.POSTETABLE.FieldByName('rrecode').asString := COMBOREGION.TEXT ;
    ...

  4. #4
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2002
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 391
    Points : 189
    Points
    189
    Par défaut [Tokyo-MsSql] Améliorer commande sql
    Merci de vos réponses

    J'ai essayé ce que Sergiomaster ma déjà expliqué et ca fonctionne je ne sais pas si c'est la bonne méthode mais le résultat est bon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        AQuery.Connection:=Fdonnees.DONNEESCONNECTION;
                   AQuery.SQL.TEXT := 'update poste set rdirecteur = :N, RMAIL=:C, RTELE=:T WHERE RRECODE =:R and rregion=:M';
                   AQuery.ParamByName('R').asString:=comboregion.text;
                   AQuery.ParamByName('M').asString:=comboedit1.Items[rang];
                   AQuery.ParamByName('N').asString:=espnom.TEXT;
                   AQuery.ParamByName('C').asString:=espMAIL.TEXT;
                   AQuery.ParamByName('T').asString:=esptel.TEXT;
                   AQuery.EXECUTE;
    Merci encore a tous

    Mario

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    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 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par mario9 Voir le message
    J'ai essayé ce que Sergiomaster ma déjà expliqué
    j'avais indiqué un MERGE au cas où la ligne n'existait pas et qu'il fallait la créer quand même
    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

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

Discussions similaires

  1. Commande SQL / connaître taille d'1 base
    Par Thomad dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/04/2005, 11h38
  2. [JDBC] Commande SQL récalcitrante
    Par Dahu dans le forum JDBC
    Réponses: 7
    Dernier message: 05/04/2005, 16h03
  3. commande SQL truncate table xxx
    Par Yogy dans le forum SQL
    Réponses: 1
    Dernier message: 07/10/2004, 14h57
  4. migration d'une base de mssql vers postgre sql
    Par dim_italia dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 06/08/2004, 22h56
  5. [dBase]il y a mieux que la commande sql UPDATE ?
    Par sana72 dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 12/12/2002, 11h59

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