Mon clientdataset est relié à un SQLDataset dont la commandtext est une requete :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
DBEdits.enabled := true
J'ai un bouton enregistrer qui appelle une fonction

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
if testchamps <> true then
    begin
      ClientDataSet1.ApplyUpdates(0) ;
cette fct teste si les donnees ont ete saisies ou pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
EDatabaseError Enregistrement non trouvé ou modifié par 1 autre utilisateur
j'ai essayé de remplacer dans la fonction testchamps :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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