Sortieren unter TDBF

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
Sandrine
Beiträge: 2
Registriert: So 12. Nov 2006, 11:33

Sortieren unter TDBF

Beitrag von Sandrine »

Hallo ,ich finde es KLASSE, daß es endlich ein Lazarus-Forum gibt, in dem
deutsch gesprochen wird.

Und da habe ich auch gleich mal eine Frage.

Was muß man anstellen damit Daten in einem DBGrid sortiert werden unter
Verwendung der TDBF Compo. ?

z.B. nach 'Namen'.

Ich verwende Linux, Ubuntu 6.06

Sandrine

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Brauchst du einen Index für deine Spalte Name und musst dann Indexname auf den namen des Indexes setzen
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Sandrine
Beiträge: 2
Registriert: So 12. Nov 2006, 11:33

Beitrag von Sandrine »

Vielen Dank für die schnelle Antwort.

Sandrine

ralli
Beiträge: 374
Registriert: Mi 13. Sep 2006, 15:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Hagen a.T.W.
Kontaktdaten:

Und so funktioniert es

Beitrag von ralli »

Hallo Sandrine,

Einen neuen Sortierschlüssel (Index) erstellst Du wie folgt:

Code: Alles auswählen

procedure TForm1.BitBtn1Click(Sender: TObject);
 
var schluessel : String;
 
begin
 
If Datenbank.Active then
 
begin
 
// Wir brauchen für die Erzeugung eines Index den Exclusiv Modus !
 
Datenbank.TryExclusive;
 
schluessel := InputBox('Index erstellen','Indexname','');
 
// mdx Index datei erzeugen
 
// Datenbank.AddIndex(schluessel,schluessel,[ixPrimary, ixUnique, ixCaseInsensitive]);
 
Datenbank.AddIndex(schluessel,schluessel,[]);
 
Datenbank.IndexName := schluessel;
 
Datenbank.EndExclusive;
 
Datenbank.First;
 
end;
 
end;
Einen Index löscht Du so:

Code: Alles auswählen

var schluessel : String;
 
begin
 
If Datenbank.Active  then
 
begin
 
Datenbank.TryExclusive;
 
schluessel := InputBox('Index entfernen','Indexname','');
 
Try
 
Datenbank.DeleteIndex(schluessel);
 
Datenbank.EndExclusive;
 
Datenbank.Close;
 
Finally
 
Datenbank.Open;
 
Application.MessageBox('Index Neuaufbau fertig.', 'Fertig', MB_OK or MB_ICONINFORMATION);
 
end;
 
end;
 
end;
Viel Spaß beim Probieren

Ralli

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

@Ralli warum benutzt du dort TryExclusive wenn dus eh nicht auswertest ?
Und falls das fehlschlägt hagelts hinterher Fehlermeldungen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten