Ver Mensaje Individual
  #1  
Antiguo 13-05-2013
darkerviti darkerviti is offline
Miembro
NULL
 
Registrado: may 2013
Posts: 14
Reputación: 0
darkerviti Va por buen camino
Actualizar datos dbgrid

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.
Responder Con Cita