Usuwanie wszystkich wierszy oraz dodawanie wierszy do TDBGrid bez używania bazy danych

0

Jak usunąć wszystkie wiersze i dodać wiersze do kontrolki TDBGrid ?

0

TClientDataSet albo inny in memory database (typu SQLMemTable) :D

0

Jakiego kodu Delphi użyć do usuwania wszystkich wierszy i ich dodawania do TDBGrid ?

1

Dobra, to teraz na poważnie. Moja odpowiedź była pierwszym co mi przyszło na myśl po przeczytaniu tematu.

DBGrid nie przechowuje żadnych wierszy. On tylko wyświetla rekordy które masz w komponencie typu TDataSet który jest powiązany z Gridem poprzez TDataSource. Więc zasadniczo takie pytanie po prostu nie ma sensu. Musisz usuwać rekordy z DataSeta.

2
datalux napisał(a):

Jak usunąć wszystkie wiersze i dodać wiersze do kontrolki TDBGrid ?

TDBGrid nie przechowuje danych, a więc nie można ich z niego usunąć.

datalux napisał(a):

Jakiego kodu Delphi użyć do usuwania wszystkich wierszy i ich dodawania do TDBGrid ?

procedure JestemIdiotycznaProceduraDoUsuwaniaWierszyZDBGrid(ADBGrid : TDBGrid);
var
  lDS : TDataSet;
begin
   lDS := ADBGrid.DataSource.DataSet;

   lDS.DisableControls;
   try
     while not lDS.Eof do
       lDS.Delete;
   finally
     lDS.EnableControls;
   end;
end;

Pisałem z palca i wyłączam wszelką odpowiedzialność.

0

@wloochacz:
Jeśli dataset (np. Tclientdataset) posiada metodę emptydataset, to można też tak...

procedure JestemIdiotycznaProceduraDoUsuwaniaWierszyZDBGrid(ADBGrid: TDBGrid);
var
  lDS: TDataSet;
begin
  lDS := TDataSet(ADBGrid.DataSource.DataSet);

  lDS.DisableControls;
  try
    if lDS is TClientDataSet then
      TClientDataSet(lDS).emptydataset
    else
      while not lDS.IsEmpty do
        lDS.Delete;
  finally
    lDS.EnableControls;
  end;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1