Changing values entered on a form

I am trying to change the values entered in a TWebDBEdit. Whichever method I use does change the value seen on screen, but the original value gets saved back to the database.

I have tried

procedure TMyForm.MyControlExit(Sender: TObject);
begin
  MyControl.Text := UppercaseFirstLetter(MyControl.Text);
end;
procedure TMyForm.MyControlExit(Sender: TObject);
begin
  MainDatasetMyField.Value := UppercaseFirstLetter(MyControl.Text);
end;
procedure TMyForm.MainDatasetMyFieldSetText(Sender: TField; const
    Text: string);
begin
  Sender.AsString := UppercaseFirstLetter(edFirstName.Text);
end;

and just before I save:

 MainDataset.DisableControls;
  lVal := MainDatasetMyField.Value;
  MainDatasetMyField.Value := UppercaseFirstLetter(lVal);
  MainDataset.Post;

While all of them display the corrected value on screen, none of them save it back to the database.

I'm currently working around this by enforcing it in the server.

Any ideas?

actually, that last one might work - need to test further.