begin process at 2010 02 10 09:45:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

Bases de données

 > 

SQL... Probléme..


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

SQL... Probléme..

jeudi 15 décembre 2005 à 13:05:51 | SQL... Probléme..

cmeme

Salut Very Happy

Voila j'ai deux tables la 1ere TABLE AUTEUR et la 2ème TABLE ECRIRE. j'ai deux clefs primaire dans AUTEUR qui sont NOM_AUTEUR et PRENOM_AUTEUR et dans la TABLE ECRIRE ce sont des clefs externe (NOM_AUTEUR et PRENOM_AUTEUR) ce que j'aimerai savoir faire c'est lorsque je modifie mes champs NOM_AUTEUR et PRENOM_AUTEUR dans la Gestion Auteur que celle ci change NOM_AUTEUR et PRENOM_AUTEUR dans la Gestion Ecrire également. J'ai deja un code pour modifier NOM_AUTEUR et PRENOM_AUTEUR dans la gestion Auteur elle fonctionne mais elle modifie pas les champs NOM_AUTEUR et PRENOM_AUTEUR dans la Gestion Ecrire.

Code:
var
  OldType,OldType1,OldType2,OldType3 :string; // Déclaration de variable
  OldType4,OldType5 :string;

procedure TGes_Auteur.Modifier_AuteurClick(Sender: TObject);
begin
  if  (edit1.Text = '')or (edit2.Text = '')or (edit3.Text = '')or (edit4.Text='') then
      begin
         messagedlg('Veuillez sélectionner le champs à supprimer', mtWarning,[mbok],0);
      end
  else
      with DataModule2.IBQuery_Auteur do
        begin           // Ici on modifie les champs sélectionner
          SQL.Clear;
          SQL.Add('Update AUTEUR set NOM_AUTEUR=:Nom_Auteur, PRENOM_AUTEUR=:Prenom_Auteur, PSEUDONYME=:Pseudonyme, NATIONALITE=:Nationalite');
          SQL.Add('WHERE NOM_AUTEUR = :OldType and PRENOM_AUTEUR = :OldType1 and PSEUDONYME = :OldType2 and NATIONALITE=:OldType3 ');
          DataModule2.IBQuery_Auteur.ParamByName('Nom_Auteur').AsString:=edit1.text;
          DataModule2.IBQuery_Auteur.ParamByName('OldType').AsString:=OldType;
          DataModule2.IBQuery_Auteur.ParamByName('Prenom_Auteur').AsString:=edit2.text;
          DataModule2.IBQuery_Auteur.ParamByName('OldType1').AsString:=OldType1;
          DataModule2.IBQuery_Auteur.ParamByName('Pseudonyme').AsString:=edit3.text;
          DataModule2.IBQuery_Auteur.ParamByName('OldType2').AsString:=OldType2;
          DataModule2.IBQuery_Auteur.ParamByName('Nationalite').AsString:=edit4.text;
          DataModule2.IBQuery_Auteur.ParamByName('OldType3').AsString:=OldType3;
          ExecSQL;
        end;
      with DataModule2.IBQuery_Ecrire do
        begin
          SQL.Clear;
          SQL.Add('Update ECRIRE set NOM_AUTEUR=:Nom_Auteur, PRENOM_AUTEUR=:Prenom_Auteur');
          SQL.Add('WHERE NOM_AUTEUR = :OldType4 and PRENOM_AUTEUR = :OldType5 ');
          DataModule2.IBQuery_Ecrire.ParamByName('Nom_Auteur').AsString:=Ges_Auteur.edit1.text;
          DataModule2.IBQuery_Ecrire.ParamByName('OldType4').AsString:=OldType4;
                 DataModule2.IBQuery_Ecrire.ParamByName('Prenom_Auteur').AsString:=Ges_Auteur.edit2.text;
          DataModule2.IBQuery_Ecrire.ParamByName('OldType5').AsString:=OldType5;
          ExecSQL;
        end;
          Refresh_Auteur.Click; //Bouton qui rafraichi la table AUTEUR
          edit1.Text:='';
          edit2.text:='';
          edit3.Text:='';
          Ajouter_Auteur.Enabled:=true;
          Modifier_Auteur.Enabled :=false;
          Supprimer_Auteur.Enabled :=false;
          Ges_Ecrire.Refresh_Ecrire.click;
end;


P.S: La requête fonctionne mais elle modifie pas les champs NOM_AUTEUR et PRENOM_AUTEUR dans la Gestion Ecrire
jeudi 15 décembre 2005 à 21:29:13 | Re : SQL... Probléme..

Delphiprog

Administrateur CodeS-SourceS
Le mieux serait de poser la question sur le site approprié


Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
vendredi 16 décembre 2005 à 23:41:47 | Re : SQL... Probléme..

jace1975

Juste une remarque sur le choix de tes clés :

Que se passe-til quand il y deux auteurs ayant le même nom??

je te conseille de (re)voir les 3 fornes normales pour modèliser une base, l'idéal étant pour ton pb d'utiliser un identiefiant technique, genre numéro incrémental dans ta table de référence. de cette façcon tu récupère l'id dans tas première et tu fais un update par rapport à cet ID.


Cette discussion est classée dans : ecrire, auteur, prenom, ibquery, datamodule2


Répondre à ce message

Sujets en rapport avec ce message

Lire et ecrire à une adresse memoire [ par db95 ] Bonjours a tous!Je suis super débutant en delphi et j'aimerais savoir comment faire pour lire et ecrire une valeur à une adresse memoire spécifique. M ecrire des data dans registre [ par crogger ] Salut, je voudrai arriver à ecrire dans la base registre des informations de type DATA...par exemple, une fois détérminé le chemin etc... pouvoir ecri Ecrire dans un edit d'une autre application [ par Hy0Ga ] Je me demandais si quelqu'un saurait comment, a partir d'un programme delphi, écrire dans une Tedit contenue dans une autre application comme IExplore Ecrire dans un bouton [ par magicvinni ] Question facile...sauf pour moi, je voudrait mettre plusiers lignes de text dans un bouton est ce possible?Merci d'avanceMagicVinni Ecrire dans des cases memoires [ par Cask ] Salut à tous, je voudrais savoir comment ecrire dans des cases memoires en delphi. Par exemple ecrire sur le port parallèle (adresse 888 ou H378).J'ai Ecrire en héxadécimal dans un fichier [ par sebastienbro ] Voilà, j'aimerais savoir comment on fait pour écrire en héxadécimal dans un fichier. En fait, je voudrais, par exemple, dire d'écrire $20, et je voudr Problème de read only avec un IBquery [ par lnicos ] je souhaiterais éditer les résultats fourni par mon IBquery, mais j'ai une erreur un retour qui me dit problème car lecteure seule... Pouvez vous m'ai déclarer un type ? [ par minipod ] Je cherche comment déclarer un type ?du style:type clientvar nom prenom pour pouvoir l'utiliser après de cette façon:client.nom := ....client.pre ecrire du texte avec opengl ? [ par waryx ] comment on fait pour afficher du texte sous opengl ?car j aitrouver un tuto en anglais de 315 ligne il y a pas plus simple ?merci bcp gomard@free.fr Utiliser une dbgrid sans base de donnees [ par Servalito ] Voila je me demandais comment faire pour ecrire moi meme dans une Dbgris sans passer par une base de donnes.Ce que je ve c pouvoir mettre les champs m


Nos sponsors


Sondage...

Comparez les prix

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,593 sec (4)

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