[resolu][MySQL][DbExpress][D7] clientdataset.applyupdates
Mon clientdataset est relié à un SQLDataset dont la commandtext est une requete :
Code:
select g_affaires.numaff,libaff,datecreat,datearchi,ch_affaire,commer,deviseur,dessinateur,ctrav from g_affaires where g_affaires.numaff = :param ;
Mes données s'affiche dans des DBedits.
J'ai un bouton modifier qui met les
Code:
DBEdits.enabled := true
J'ai un bouton enregistrer qui appelle une fonction
Code:
1 2 3
| if testchamps <> true then
begin
ClientDataSet1.ApplyUpdates(0) ; |
cette fct teste si les donnees ont ete saisies ou pas :
Code:
1 2 3 4 5 6 7 8
| function TForm2.testchamps : boolean ;
begin
testchamps := false ;
if DBEdit5.Text = '' then
begin
showmessage('vous n''avez pas saisi le chargé d''affaire') ;
testchamps := true ;
end ; |
si je modifie mes champs sans faire d'erreur (pas de DBedits vides) la modification se passe tres bien ..
si je laisse un champ vide, j'essaye d'enregistrer message d'erreur "vous n'avez pas saisi.." normal (le applyupdates ne s'effectue pas)
je remplis donc le champ dbedit , clik sur bouton enregistrer et c'est là qu'il me met :
Citation:
EDatabaseError Enregistrement non trouvé ou modifié par 1 autre utilisateur
j'ai essayé de remplacer dans la fonction testchamps :
Code:
1 2 3
| if ClientDataSet1.fieldbyname('COMMER').asstring = '' then
begin
showmessage('vous n''avez pas saisi ...') ; |
ça ne marche pas mieux
si qqu'un a une idée .. merci bien :wink: