Bonjour à tous,
Je me décide à quitter le BDE pour découvrir firebird. J'ai débuté avec le tuto "officiel " ici sans aucun problème et tout fonctionne parfaitement.
Seulement voila, je voudrais rajouter des enregistrement sans me servir du couple dbnavigator/dbgrid (directement par code) mais cela ne marche pô![]()
Je commence par rajouter un enreg dans ma table avec une requete du type :
Parfais, je valide avec un ApplyUpdates de mon clientdatatset et tout se passe bien.
Code : 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
17
18
19
20
21
22
23 with Sql do with Campagne do begin Close; s := '10'; // valeur en dur de ma cle primaire juste pour vous expliquer; ss := 'XXXXX'; with Sql do begin Clear; Add('INSERT INTO CAMPAGNE'); Add(' (CAMPAGNE, NOM_CAMPAGNE)'); Add(' VALUES (' + QuotedStr(s) + ',' + quotedstr(ss) + ')'); end; Try ExecSql; frmMain.DBGrid1.Refresh; // display(' ok'); except on e: Exception do showmessage(' *** pb_insert ' + e.Message); end; end; // with SqlQuery1
Seulement, mon dbgrid ne fait pas apparaitre le nouvel enreg, donc je tente d'ouvrir et de fermer mon sqlquery (sans aucun effet sur le refresh du dbgrid). Je tente alors d'ouvrir et de fermer mon clientdatatset et la erreur de cle primaire ('violation of primary or unique key constraint') incompréhensible car la cle est bien renseignée avec une valeur unique.
Information : si je ferme et relance l'application, l'enregistrement que je viens de créer apparait bien dans mon dbgrid.
Donc question : si quelqu'un peut me dire ou est mon erreur je prend (grave) ou si quelqu'un sait comment rafraichir ce foutu dbgrid ben je prend aussi
Merci d'avoir lu jusque la, de prendre le temps de répondre si vous avez un début de solution et désolé pour le roman...
Partager