Buenas tardes,
Mi problema es el siguiente, tengo un dbgrid conectado a un datasoruce, este esta a un clientdataset que tiene como maestro a otro clientdataset,
el grid me muestra perfectamente la informacion hasta que inserto un nuevo elemento, dicho elemento se inserta correctamente en bbdd pero no aparecen los datos insertados en el grid, y no solo eso, he probado a cerrar el clientdataset y abrirlo, a hacer un refresh y nada, solo me funciona cuando salgo de la aplicación, el código que ejecuto al insertar es el siguiente:
Código Delphi
[-]
procedure TNewClass.bbtOkClick(Sender: TObject);
var
Error : Boolean;
begin
Error := False;
if edName.Text = '' then
ShowMessage('Please fill all fields')
else
begin
if DM.cdsClassNew.Locate('label;idstudy', VarArrayOf([edName.Text,DM.cdsStudySel.FieldByName('id').AsInteger]),[]) then
showmessage('Class already exists, please select another name for the class.')
else
begin
if MessageDlg('Do you want to create this new class?', mtConfirmation, mbYesNo, 0) = mrYes then
begin
try
DM.cdsClassNew.Insert;
DM.cdsClassNew.FieldByName('label').AsString := edName.Text;
DM.cdsClassNew.FieldByName('idstudy').AsInteger := DM.cdsStudySel.FieldByName('id').AsInteger;
DM.cdsClassNew.Post;
DM.cdsClassNew.ApplyUpdates(0);
DM.cdsClassNew.Refresh;
DM.cdsClassNew.Close;
DM.cdsClassNew.Open;
DM.cdsClass.Refresh;
showmessage('Class created successfully');
except
showmessage('Operation cannot be done, please try again');
end;
end;
end;
end;
end;
Seguro que es una tontería, pero llevo mucho tiempo con el código delante y ya no lo veo.
Muchas gracias.