Hallo,
ich hab mal wieder ein kleines Problem...und zwar:
Ich greife mit einem TQuery via
SQL auf eine
Paradox Datenbank zu und zeige die Daten in einem DBGrid und in einzelnen DBEdit(s) an.
Nun möchte ich die Tabelle nach verschiedenen Spalten zur Laufzeit umordnen können und die Spalte, nach der geordnet wurde nach vorne bringen.
Dies funktioniert eigentlich auch ganz gut mit diesem Code:
Delphi-Quellcode:
procedure TFArtikel.DBGridDatenTitleClick(Column: TColumn);
begin
//Nach ArtNr sortieren
If Column.FieldName = '
ArtNr'
Then
Begin
DB.SQL[1] := '
ORDER BY ArtNr';
DB.Active := True;
DB.FieldByName('
ArtNr').
Index := 1;
iSortierStatus := 1;
End;
//Nach Artikelbezeichnung sortieren
If Column.FieldName = '
Artikelbezeichnung'
Then
Begin
DB.SQL[1] := '
ORDER BY Artikelbezeichnung';
DB.Active := True;
DB.FieldByName('
Artikelbezeichnung').
Index := 1;
iSortierStatus := 2;
End; ...
Ich kann also mit einem Klick auf den Titel der Spalte nach der Spalte ordnen lassen.
Nebenbei: Die erste
SQL Zeile ist
SELECT * FROM "c:\blah.db"
Nun mein Problem: Leider klappt das Ganze immer nur ein paar Mal. Also wenn ich zur Laufzeit ein paar mal ordne werde ich dann mit einer
Exception beglückt.
EAccessViolation.
... Zugriffsverletzung bei Adresse ... usw.
Weiß jemand warum das so ist und was ich eventuell dagegen tun könnte?
[edit=r_kerber]Delphi- und SQL-Tags gesetzt. Mfg, r_kerber[/edit]