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 :

requete update sur base access


Sujet :

Bases de données Delphi

  1. #1
    Membre éprouvé
    Avatar de neuneu1
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 874
    Points : 1 194
    Points
    1 194
    Par défaut requete update sur base access
    Bonjour
    , Je suis oblige de faire des modif sur un petit programme de rien du tout sauf que la requête update ben j ai tout faux:
    table: eleves
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    procedure TFeva.AdvGlowButton10Click(Sender: TObject);
    begin
    ADOQuery2.SQL.Clear;
    ADOQuery2.SQL.Text:= ('update eleves set classes = cp where nom = toto ');
    adoquery2.ExecSQL;
    end;
    j ai un retour erreur manque 2 paramètres et la je vois pas, du moins si,! j ai encore rien compris
    a+

  2. #2
    Membre éprouvé
    Avatar de neuneu1
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 874
    Points : 1 194
    Points
    1 194
    Par défaut
    Bonjour
    petit question de remise a niveau.
    Pour update , je dois pas passer toutes les colones;

    a+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Août 2006
    Messages : 106
    Points : 55
    Points
    55
    Par défaut
    ça devrait marcher comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ADOQuery2.SQL.Clear;
    ADOQuery2.SQL.Text:= 'update eleves set eleves.classes = "cp" where ((eleves.nom) ="toto");';
    ADOQuery2.ExecSQL;

  4. #4
    Membre éprouvé
    Avatar de neuneu1
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 874
    Points : 1 194
    Points
    1 194
    Par défaut
    Bonjour

    Merci mais toujours la même erreur:
    Voici les champs de la table :
    id
    nom
    prenom
    loggin
    mot passe
    classes
    groupes
    emails


    les champs à mettre a jours sont classes et groupes.

    merci
    a+

  5. #5
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Utilises des paramètres ce sera plus simple.

    Quant à la condition WHERE passe par l'ID de l'élève. Imagine que tu aies des homonymes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    with ADOQuery2 do
    begin
      SQL.Clear;
      SQL.Text:= 'UPDATE eleves SET classes = :classes WHERE id = :id;';
      Parameters.ParamByName('classes').Value := 'cp';
      Parameters.ParamByName('id').Value := 10;
      ExecSQL;
    @+ Claudius

  6. #6
    Membre éprouvé
    Avatar de neuneu1
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 874
    Points : 1 194
    Points
    1 194
    Par défaut
    Bonjour
    Merci pour le code ca marche pour le moment..
    Effectivement je vais travailler sur id

    merci
    a+

  7. #7
    Membre éprouvé
    Avatar de neuneu1
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 874
    Points : 1 194
    Points
    1 194
    Par défaut
    Désole je reviens avec mes gros sabot.

    je récupère l id via un dbedit, c'est pour faire simple.
    ce qui donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    with ADOQuery2 do
    begin
      SQL.Clear;
      SQL.Text:= 'UPDATE eleves SET classes = :classes WHERE N° = :id;';
      Parameters.ParamByName('classes').Value := 'cm2';
      Parameters.ParamByName('id').Value := DBEdit1.Text;
      ExecSQL;
    je précise, je test donc je récupère aucune valeur pour classe.

    erreur est la suivante:
    valeur de précision non valide..

    j adore ces message
    merci

  8. #8
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Je suppose que le champ ID est type Integer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parameters.ParamByName('id').Value := StrToInt(DBEdit1.Text);
    @+

  9. #9
    Membre éprouvé
    Avatar de neuneu1
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 874
    Points : 1 194
    Points
    1 194
    Par défaut


    yes c'est ca , j ai completement oublie ca
    a+

  10. #10
    Membre éprouvé
    Avatar de neuneu1
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 874
    Points : 1 194
    Points
    1 194
    Par défaut
    Bon un vrai boulet comme dans le films, deux resolu et deux fois annuler pas top..
    Bon j ai voulu passer une deuxième valeur et bon je me suis gaufer sur la syntaxe , enfin j espère.
    une virgule mal placer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    
     SQL.Clear;
      SQL.Text:= 'UPDATE eleves SET classes = :classes , groupes:= :groupes WHERE n° = :id;';
      Parameters.ParamByName('groupes').Value :=AdvComboBox8.Text;
      Parameters.ParamByName('classes').Value :=AdvComboBox9.Text;
      Parameters.ParamByName('id').Value := StrToInt(DBEdit1.Text);
    merci
    a+

  11. #11
    Membre éprouvé
    Avatar de neuneu1
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 874
    Points : 1 194
    Points
    1 194
    Par défaut
    bon

    je me suis corriger, pas une virgule mais un :=:

    merci

    a+

  12. #12
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    quel est le type de "id" ? si c'est un entier faut faire une conversion StrToInt(DBEditx.text) ou DBEditx.AsInteger;

  13. #13
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    Citation Envoyé par Just-Soft Voir le message
    quel est le type de "id" ? si c'est un entier faut faire une conversion StrToInt(DBEditx.text) ou DBEditx.AsInteger;
    Cl@udius l'a déjà dit, +1.

    problème de synchronisation

  14. #14
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 444
    Points : 5 864
    Points
    5 864
    Par défaut
    salut

    pour access les double quote " ne sont pas accepté, il faut
    doubler les simple cote ''

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL.Text:= format('UPDATE eleves SET classes = ''%s'' , groupes:= ''%s'' WHERE n° = %s ',[AdvComboBox8.Text,AdvComboBox9.Text,DBEdit1.Text]);
    @+ Phil

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

Discussions similaires

  1. requete UPDATE sur une ligne d'une Base de Données
    Par kabil.cpp dans le forum Windows Forms
    Réponses: 4
    Dernier message: 02/09/2009, 18h06
  2. problème update sur base access
    Par Ludosjob dans le forum ASP
    Réponses: 4
    Dernier message: 01/09/2008, 21h16
  3. requete sql de recherche sur base access
    Par donhatem dans le forum Langage SQL
    Réponses: 9
    Dernier message: 22/07/2008, 23h05
  4. Réponses: 1
    Dernier message: 04/04/2006, 10h28
  5. Probleme avec requete UPDATE sur ACCESS
    Par Chromatic dans le forum VBA Access
    Réponses: 2
    Dernier message: 05/01/2006, 10h03

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