In mijn (Lazarus) applicatie heb ik een dbgrid gebaseerd op een SQLite tabel en een knop waarmee ik de sortering van het dbgrid wil wijzigen.
Als ik de eerste keer klik moet het dbgrid oplopend op Naam worden gesorteerd, klik ik nogmaals dan dient het grid aflopend op Naam te worden gesorteerd.
Nu dacht ik dat de volgende code zou moeten werken maar in de praktijk lijkt het erop dat SQLite 3 geen DESC en ASC herkent in de ORDER BY.
Het resultaat is in ieder geval dat het grid ongeacht klikken altijd oplopend op Naam blijft.
Code:
if SortNaam = 'Ascending'
then begin
SortNaam := 'Descending';
Sqlite3dsAdressen.ExecSQL('SELECT * FROM Adressen ORDER BY Naam DESC');
Sqlite3dsAdressen.RefetchData;
dbgrid1.Refresh;
end
else begin
SortNaam := 'Ascending';
Sqlite3dsAdressen.ExecSQL('SELECT * FROM Adressen ORDER BY Naam ASC');
Sqlite3dsAdressen.RefetchData;
dbgrid1.Refresh;
end;
Als SQLLite inderdaad geen DESC en ASC accepteert hoe kanik dan de sortering van mijn dbgrid aanpassen?
Ik heb als alternatief in SQLite ook al twee extra indexen aangemaakt (Name-Asc en Name_Desc) maar ik heb geen idee hoe ik in SQLite van index kan wisselen middels Pascal code.
Heeft iemand ervaring met SQLite en kan die mij op weg helpen?
Bij voorbaat dank!
Jan
Bookmarks