begin process at 2010 02 10 07:05:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

J'AI BESOIN D'AIDE !!!! :O

 > 

Probleme avec mon Update :(


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme avec mon Update :(

vendredi 2 décembre 2005 à 00:49:17 | Probleme avec mon Update :(

cmeme

Salut merciii à l'avance pour votre aide ;)

Voila j'ai un bouton modifier et j'ai une DBGRID et j'utilise interbase pour connecter mes tables: j'appuye  d'abord sur le bouton selectionner qui s'affiche dans mes edit.text mais lorsque j'essaye de modifier ma dbgrid avec mon bouton modifier j'ai une erreur voici le code que j'ai mis derrière mon bouton :

procedure TGes_Auteur.BitBtn5Click(Sender: TObject);
begin

   if  (edit1.Text = '')or (edit2.Text = '')or(edit3.Text = '')or(edit4.Text = '')then
       begin
         messagedlg('Tous les champs sont pas mentionner',mtWarning,[mbyes],0);
       end
   else
       begin
       with DataModule2.IBQuery_Auteur do begin
         SQL.Clear;
         SQL.Add('UPDATE AUTEUR set NOM_AUTEUR='''+edit1.Text+'''');
         SQL.Add('UPDATE AUTEUR set PRENOM_AUTEUR='''+edit2.Text+'''');
         SQL.Add('PSEUDONYME='''+edit3.Text+'''');
         SQL.Add('NATIONALITE='''+edit4.Text+'''');
         SQL.add('where NOM_AUTEUR='''+edit1.Text+'''');
         SQL.add('where PRENOM_AUTEUR='''+edit2.Text+'''');
         ExecSQL;
         BitBtn8.Click;
         BitBtn4.Enabled:=true;
         BitBtn6.Enabled:=true;
         end;
         end;
      
end;


vendredi 2 décembre 2005 à 13:50:21 | Re : Probleme avec mon Update :(

dominique.stock

Bonjour
    SQL.add('where NOM_AUTEUR='''+edit1.Text+'''');
    SQL.add('where PRENOM_AUTEUR='''+edit2.Text+'''');
dans la deuxième ligne le "Where" , ce n'est pas plutôt "and" ?

Dom
lundi 5 décembre 2005 à 15:08:12 | Re : Probleme avec mon Update :(

vincentstryckmans

Bonjour,

La commande sql UPDATE ne doit apparaître qu'une seule fois, tout comme la commande WHERE.
Bref le bon code est :

         SQL.Add('UPDATE AUTEUR set NOM_AUTEUR ='+quotedstr(edit1.Text));
         SQL.Add(', PRENOM_AUTEUR='+quotedstr(edit2.Text));
         SQL.Add(', PSEUDONYME='+quotedstr(edit3.Text));
         SQL.Add(', NATIONALITE='+quotedstr(edit4.Text));
         SQL.add('where NOM_AUTEUR='+quotedstr(edit1.Text));
         SQL.add('PRENOM_AUTEUR='+quotedstr(edit2.Text))
;

Pourquoi cherches-tu à faire un udpate de valeurs en utilisant ces valeurs comme clefs de recherche ? Tu assignes NOM_AUTEUR et PRENOM_AUTEUR à des valerus que tu utilises comme paramêtre de recherche.

Pour identifier de manière unique, chaque record, donc chaque auteur, il est plus que souhaitable que tu aie une clef primaire ID, donc unique et not null, pour identifier sans ambiguité chacun des records de la table.
Pour se faire, crée un générateur et un trigger qui va assigner une valeur à ta clef primaire, chaque fois que tu insères un nouveau record, le générateur sera automatiquement mise à jour par le serveur pour assurer le caractère unique de la clef primaire :

voici le code sql :

create generator gen_auteur;
set gen_auteur to 0;
CREATE TRIGGER TG_ID_AUTEUR FOR AUTEURACTIVE
BEFORE INSERT POSITION 0
as
begin
   if (NEW.ID is null) then
       NEW.ID = GEN_id(GEN_LOGIN,1);
end



Et comme disait ma grand-mère : il y a toujours du soleil derrière les nuages.
Vincent Stryckmans.

mardi 6 décembre 2005 à 12:12:27 | Re : Probleme avec mon Update :(

cmeme

Réponse acceptée !

Voici la solution à mon probléme :


var
OldType: string;

procedure TGes_Format.Modifier_FormatClick(Sender: TObject);  //Bouton pour "Modifier"
begin
begin
  if  (edit1.Text = '')then
  begin
    messagedlg('Veuillez sélectionner le champs à modifier', mtWarning,[mbok],0);
  end
  else
  with DataModule2.IBQuery_Format do
  begin
    SQL.Clear;
    SQL.Add('Update FORMAT set TYPE_FORMAT=:Type_Format');
    SQL.Add('WHERE TYPE_FORMAT = :OldType');
    DataModule2.IBQuery_Format.ParamByName('Type_Format').AsString:=edit1.text;
    DataModule2.IBQuery_Format.ParamByName('OldType').AsString:=OldType;
    ExecSQL;
    Refresh_Format.Click; //Bouton qui rafraichi
    edit1.Text:='';
    Ajouter_Format.Enabled:=true;

  end;
end;
  end;
Voila, voila mercii encore pour votre aide



Cette discussion est classée dans : text, sql, add, auteur, update


Répondre à ce message

Sujets en rapport avec ce message

la commande sql ne se termine pas correctement [ par jeansami ] bonjourj'ai rencontré ce problème, et je ne sais pas où est l'erreur, malgré j'ai utilisé "clear', voici le code<pre class="alt2" dir="ltr" style="BOR adoquery requête INSERT [ par pierrecoulon ] bonjourest-ce quelqu'un pourrais me dire si la requête suivante est correcte parce qu'elle ne passe pas? Dlg.ADOQuery1.SQL.clear;      Dlg.Adoquery1.s Et le SQL dans tout ça ? [ par simonpelloquin ] Bonjour à tous ! Et vive la bonne humeur en ce dernier jour de la semaine !!! <img src="/imgs2/smile_cool importer un fichier text vers une bd sql [ par dalatifa ] salut, je veux lire un fichier text et l'enregistrer ds une table de sql server , donc je dois non seulement lire les lignes mais les colonnes aussi., insert avec autoincrément sous Delphi [ par DenisPhil ] Bonjour, j'ai créé une table sous Access avec une clé auto-incrémentée. Dans un prog Delphi, je veux insérer des données dans cette table. Mon pb est UPDATE de Sql [ par notrica ] Salut, J'utilise Sql-serveur2005,j'ai une erreur de syntaxe que je n'arrive pas decouvrir. voici le code : [code=pas] [b]With[/b] [color=blue]QPlaGen SQL : pb avec insert [ par simonpelloquin ] Bonjour,Pour faire suite à la discussion Fieldbyname non déclaréavec Jenojen, nous rencontrons un problème des plus agaçants :Sur une table avec un ch TADOQuery : Requête paramétrée avec Delphi 7 [ par tleboukaka ] Bonjour, J'ai réussit à faire fonctionner une requette sans parametre, Par contre, quand je veux paramétrer (Nom Elv; date debut et Date fin) cette mê Placer la valeur d'un champ dans TEdit [ par gpletinckx ] Bonjour, J'utilise Oracle 8 et Delphi 7. J'ai écrit un sql dans le code par sql.Text := ... Ce sql change de la façon suivante: SetLength(Test, 2 requetes sql [ par carolin2007 ] bonjour tout le monde,j'ai une bd crée en firebird .j'ai fai une requete de recherche par programmtion sur un element qui est  la jointure de  3 table


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales