Bonjour,
1 -
j'ai une feuille qui contient un dataset. Les propriétés InsertSQL, ModifySQL, DeleteSQL, RefreshSQL et SelectSQL sont renseignées.
Lorsque je modifie une ligne je voudrais que ma TDBGrid qui y est liée soit raffraichie.
Voici le code qui me permet de supprimer ma ligne :
Mais je voudrais savoir comment faire en gardant ma transaction.
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
24
25
26 With IBDataSetListingFonctions do begin if not Eof then begin Msg := 'CONFIRMATION DE SUPPRESSION' + RetourChariot (2) + 'Confirmez-vous la suppression de la fonction ''' + FieldValues ['NOMFONCTION'] + ''' ?'; Reponse := MessageDlg(Msg, mtConfirmation, [mbYes, mbNo], 0); if Reponse = mrYes then begin if not Transaction.InTransaction then Transaction.StartTransaction; //Editer l'enregistrement ... Edit; FieldByName ('ACTIF').AsInteger := 0; Post; //...Valider la transaction et réouvrir le dataset pour rafraîchir la //grille d'affichage des fonctions. Transaction.Commit; Open; end; //if Reponse = mrYes end; //Repoif EOF end; //With IBDataSetListingFonctions
Le refresh faisant appel à ma requête RefreshSQL. Le problème est que le résultat dans ma TDBGrid ne correspond pas à ce qui devrait être affiché.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 if not Transaction.InTransaction then Transaction.StartTransaction; //Editer l'enregistrement ... Edit; FieldByName ('ACTIF').AsInteger := 0; Post; //...Valider la transaction et réouvrir le dataset pour rafraîchir la //grille d'affichage des fonctions. Transaction.CommitRetaining; Refresh;
2 -
Dans mon dataset j'ai une requête d'insertion initialisée avec :
A l'insertion mon champ Actif doit prendre automatiquement -1. Seulement après la validation de mon enregistrement (méthode post) j'ai un message d'erreur me disant que le champ Actif doit être renseigné.vSQL := 'INSERT INTO ' + TableADM_FONCTIONS + ' ' +
'(IDFONCTION, NOMFONCTION, DESCRIPTIONFONCTION, ACTIF) ' +
'VALUES(:IDFONCTION, :NOMFONCTION,ESCRIPTIONFONCTION, -1)
La méthode avec le -1 directement dans la requête n'est pas correct ?
D'avance merci,
Alexandre.
Partager