Jak usunąć wszystkie wiersze i dodać wiersze do kontrolki TDBGrid ?
TClientDataSet albo inny in memory database (typu SQLMemTable) :D
Jakiego kodu Delphi użyć do usuwania wszystkich wierszy i ich dodawania do TDBGrid ?
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.
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ść.
@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;