Czy można zmieniać kolejność rekordów w bazie (tabeli,baza lokalna)?
Albo czy można zmieniać kolejność wyświetlanych rekordów z tej bazy w dbgrid(np po posortowaniu)?
Kolejnosc rekordow to rzecz wzgledna i zalezna od posortowania (ewentualnie indeksowania).
Natomiast kolejnosci zapisu w tabali nie zmienisz.
Napisz co chcesz osiagnac??
W samej bazie, czyli w pliku DBF czy DB, nie. Przy każdym zapisie rekordy są dodawane na koniec pliku.
Natomiast przy wyświetlaniu jak najbardziej można i z reguły nawet trzeba. Jeśli masz w swojej bazie jakieś pole kluczowe, to przy wyświetlaniu rekordy są sortowane według tego pola. Ale sortowanie można ustawiać według dowolnego pola bazy danych.
Malutki przykładzik:
Załóżmy, że chcesz posortować tabelę MY_TABLE według pola POLE1 malejąco. Możesz to zrobić tak:
// uses .....,BDE,..... ;
procedure ExecuteSQL(const SQL: string; Table: TTable);
var
cursor: hDBICur;
begin
Table.Database.Execute(SQL, nil, False, @cursor);
TDBDataSet(Table).Handle := cursor;
end;
......
ExecuteSQL('select * from MY_TABLE order by POLE1 desc', Table1);
Sortowanie można też uzyskać przez odpowiednie zastosowanie indexów.
To nie jest baza SQL.
Chce tak wyświetlać tabele w bdgridzie zeby rekordy były posortowane
To nie jest baza SQL.
Do wykonywania rozmaitych operacji na lokalnych bazach danych również można stosować język SQL. Przeczytaj LOCALSQL.HLP (http://www.jack1024.private.pl/downloads/download.php?cat=docs&scat=delphi5&f=LocalSQL.pdf.zip).
A przykładzik z postu powyżej jest skopiowany z kodu źródłowego programu bazodanowego opartego na lokalnej bazie danych PARADOX.
DZIĘKI JACK