cmeme
Messages postés12Date d'inscriptionjeudi 1 décembre 2005StatutMembreDernière intervention15 décembre 2005
-
2 déc. 2005 à 00:49
cmeme
Messages postés12Date d'inscriptionjeudi 1 décembre 2005StatutMembreDernière intervention15 décembre 2005
-
6 déc. 2005 à 12:12
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 :
cmeme
Messages postés12Date d'inscriptionjeudi 1 décembre 2005StatutMembreDernière intervention15 décembre 2005 6 déc. 2005 à 12:12
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
dominique.stock
Messages postés436Date d'inscriptionvendredi 7 novembre 2003StatutMembreDernière intervention 8 octobre 20087 2 déc. 2005 à 13:50
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" ?
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.