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 :

Mise à jour d'une table ADO


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club Avatar de logiciel_const
    Inscrit en
    Octobre 2007
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 167
    Points : 64
    Points
    64
    Par défaut Mise à jour d'une table ADO
    bonjour à tout le monde,
    je veux faire une mise à jour d'une table avec adocommand ,le probleme c'est au moment du compilation et l'exécution y a aucune erreur,mais la table n'est pas mise à jour?

    le code :

    Code delphi : 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
    procedure TForm1.Button9Click(Sender: TObject);
    begin
    with DataModule2.ADOCommand1 do
     begin
    commandText := 'update  test set '+
    'numero=:parnumero,nom=:parnom,prenom=:parprenom where numero=:parnumero';
    CommandType :=Cmdtext;
    parameters.ParamByName('parnumero').Value:=edit1.Text;
    parameters.ParamByName('parnom').Value:=edit2.Text;
    parameters.ParamByName('parprenom').Value:=edit3.Text;
     
    Execute;
    datamodule2.ADOTable1.Active:=false;
    datamodule2.ADOTable1.Active:=true;
     end;
    end;

    merci de me répondre.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Quelques remarques sur le code :
    nom et prenom ont l'air d'être des champs de type chaîne de caractères aussi je pense que tu dois ajouter des côtes entourant chacune des valeurs du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '... nom='':parnom'', prenom='':parprenom'' WHERE ...'
    Ensuite j'ai remarqué que tu fais une mise à jour de la clé primaire de ta table (numero) ce qui me semble un peu dangereux mais bon ça peut rester valable.

    Enfin, et ce pour éviter des problèmes là où il n'y en a pas, es-tu sûr que le parnumero passé en paramètre correspond bien à un enregistrement existant dans la base de données ?
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  3. #3
    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
    Citation Envoyé par Aka Guymelef Voir le message
    Quelques remarques sur le code :
    nom et prenom ont l'air d'être des champs de type chaîne de caractères aussi je pense que tu dois ajouter des côtes entourant chacune des valeurs du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '... nom='':parnom'', prenom='':parprenom'' WHERE ...'
    Avec les paramètres pas besoin de mettre de quote.

    Il y a un soucis connu avec les paramètres en ADO, c'est que si tu mets deux fois un paramètre dans une requete seulement le premier sera renseigné et pas le deuxième. donc il faut que tu modifies ton code

    Code delphi : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    commandText := 'update  test set '+
    'numero=:parnumero,nom=:parnom,prenom=:parprenom where numero=:parnumero1';
    CommandType :=Cmdtext;
    parameters.ParamByName('parnumero').Value:=edit1.Text;
    parameters.ParamByName('parnumero1').Value:=edit1.Text;
    parameters.ParamByName('parnom').Value:=edit2.Text;
    parameters.ParamByName('parprenom').Value:=edit3.Text;
    Modérateur Delphi

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

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Rayek Voir le message
    Avec les paramètres pas besoin de mettre de quote.
    Merci de m'avoir repris Rayek, j'avoue que je n'utilise pas cette façon de faire pour mes accès BDD mais je pensais que ça ne dispensais pas de quoter lorsque c'était nécessaire.

    Désolé d'avoir induit dans une mauvaise direction
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  5. #5
    Membre du Club Avatar de logiciel_const
    Inscrit en
    Octobre 2007
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 167
    Points : 64
    Points
    64
    Par défaut
    merci beaucoup,
    vous etes trop forts
    Rayek,votre code, ça marche trés bien
    merci,vous aussi Aka Guymelef

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

Discussions similaires

  1. Mise à jour d'une table
    Par smotte76 dans le forum Access
    Réponses: 2
    Dernier message: 31/10/2005, 18h13
  2. Mise à jour d'une table
    Par bath dans le forum Oracle
    Réponses: 5
    Dernier message: 19/10/2005, 12h01
  3. Mise à jour d'une table avec un fichier csv
    Par blackangel dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 26/05/2005, 14h46
  4. Réponses: 5
    Dernier message: 06/01/2005, 12h07
  5. mise à jour d'une table d'interbase sous delphi
    Par kouraichi35 dans le forum Bases de données
    Réponses: 2
    Dernier message: 19/10/2004, 13h09

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