Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBgrid sortieren (https://www.delphipraxis.net/94461-dbgrid-sortieren.html)

icebreaker 21. Jun 2007 17:13

Datenbank: Paradox • Version: 7 • Zugriff über: ADO ?!

DBgrid sortieren
 
Guten Tag,
bin gerade dabei eine kleine Adress-Datenbank als Projektarbeit zu schreiben.
Man kann bereits Werte eingeben und die komplette Datenbank speichern/Laden.
Allerdings wäre es genial wenn ich auch noch meine Werte im DBgrid sortieren lassen könnte; also wenn man auf den jeweiligen Title clickt
wird die Spalte sortiert nach A-Z ; Z-A.
Meine Realisierung funktioniert leider überhaupt nicht, dazu muss ich sagen das wir in der Schule nicht mit "komplexen" Datenbanken arbeiten,
außerdem kenn ich mich (Bis Jetzt?!) nicht mit SQL aus.

Für das Ereignis "TitleClick" habe ich folgende Procedure: (Aus dem Forum)

als Varriablen sind
Delphi-Quellcode:
sSortColumn: String;
  bSortOrder: Boolean; // global festgelegt.

procedure TForm5.DBGrid1TitleClick(Column: TColumn);

begin
 if Column.FieldName <> sSortColumn then
  begin
    sSortColumn := Column.FieldName;
  end
  else
  begin
    bSortOrder := not bSortOrder;
  end;
  ADODataSet1.Close;
  if bSortOrder then
  begin
    ADODataSet1.CommandText := 'SELECT * FROM Table ORDER BY ' + sSortColumn;
  end
  else
  begin
    ADODataSet1.CommandText := 'SELECT * FROM Table ORDER BY ' + sSortColumn + ' DESC';
  end;
  ADODataSet1.Open;


//showmessage(column.fieldname);
end;
Dessweiteren habe ich die Komponente ADODataSet1 eingefügt und mit der DataSource verbunden.
ICh benutze Paradox7 sowie TQuerry, wenn ich das jetzt alles Starte kommt die Fehlermeldung:
Fehlende Connection oder ConnectionString!

Wie schaffen ich das es mir das DBGrid sortiert ausgiebt?!
Herrzlichen Dank für eure Hilfe,
Mfg ice

[edit=Sharky]Habe den Code mal mit den richtigen Tags versehen. Mfg, Sharky[/edit]

oki 21. Jun 2007 17:29

Re: DBgrid sortieren
 
Hallo und herzlich willkommen in der DP!!! :dp:

Du must deine Datenbasis siortieren, dann wird sie auch so im Grid angezeigt.
So weit ich weiß, geht das über das Grid selber nicht.

Gruß oki

raiguen 21. Jun 2007 17:55

Re: DBgrid sortieren
 
@ oki
Die Sortierung über die Datenbasis versucht icebreaker ja schon ;)

@icebreaker
EIn ADODataSet allein reicht nicht aus, um auf irgendwelcche Daten zuzugreifen, Die Fehlermeldung sagt ja schon eindeutig: es ist in den Eigenschaften KEIN ConnectionString einmgetragen :!:
Vorgehensweise:
1) ADODataSet.ConnectionString -> Doppelklick in das leere Feld (oder auf den Ellipsenschalter)
2) Im Dialog-Fenster 'Verbindungsstring verwenden' -> Klick auf Button 'Aufbauen'
3) im Dialog Datenverknüpfungseigenschaften:
- Provider -> Microsoft JET 4.0 OLE DB Treiber
- Verbindung -> nach der AccessTabelle suchen (Klick auf den ...-Button)
danach auf VErbindung testen

Wenn das alles soweit funzt, dann sollte auch die ADODataSet-Abfrage funktionieren ...

DeddyH 21. Jun 2007 18:32

Re: DBgrid sortieren
 
Es geht nicht um Access, sondern um Paradox (laut Threadtitel) ;)

icebreaker 21. Jun 2007 22:22

Re: DBgrid sortieren
 
Erstmal: Ganz leib das ihr mir gleich so helft.
Hab das alles so gemacht, anstatt bei Verbindungen Acess Datei habe ich meine Paradox 7 genommen ("adressen.db").
Doch wenn ichs sortieren will kommt folgende Fehlermeldung:
Im Project Project1.exe ist eine Exeption der Klasse EOleExeption mit der Meldung " Nicht erkennbaresDatenbbankformat 'C:\.....\adressen.db" aufgetreten.
Beim Verbindungstest sagt er auch gleich:
Nicht erkennbares Datenbankformat.
Eine Acces Datenbank konnte ich nicht anlegen, da zeigt er ne Fehlermessage mit dem Inhalt: -2147221164.
Mfg ice

joachimd 22. Jun 2007 07:38

Re: DBgrid sortieren
 
nimm statt der AdoDataSet eine TQuery...binde dann diese Query an Dein Grid über eine TDatasource.

icebreaker 22. Jun 2007 10:20

Re: DBgrid sortieren
 
Hmm also es funktioniert nicht, außerdem habe ich es wahrscheinlich falsch umgesetzt.
Also ich habe:
1.Mein ADODataset durch ein weiteres Tquerry (querry2) ersetzt.
2.Das querry2 an die datasource1 angebunden
3.Den Quelltext wie folgt verändert:

Delphi-Quellcode:
 if bSortOrder then
  begin
    query2.CommandText := 'SELECT * FROM Table ORDER BY ' + sSortColumn;
  end
  else
  begin
   query2.CommandText := 'SELECT * FROM Table ORDER BY ' + sSortColumn + ' DESC';
  end;
  query2.Open;
Allerdings hat Tquerry ja keine Eigenschaft Command Text, was soll ich dafür verwenden?

Danke für die Hilfe :hello:
Mfg ice

joachimd 22. Jun 2007 10:40

Re: DBgrid sortieren
 
Zitat:

Zitat von icebreaker
Allerdings hat Tquerry ja keine Eigenschaft Command Text, was soll ich dafür verwenden?

Delphi-Quellcode:
Query2.SQL.Text:='...';

icebreaker 22. Jun 2007 11:13

Re: DBgrid sortieren
 
Ich bin echt etwas doof, bekomms leider nicht hin, jetzt kommt:
ungültiges Schlüsselwort
Symbol-string: Table
Zeilennummer:1

Konnte im Netz nix finden, auch habe ich selber nichts gefunden, liegt das an dem 2. Querry?
Mfg ice

DeddyH 22. Jun 2007 11:21

Re: DBgrid sortieren
 
Du musst "Table" auch durch den Namen der abzufragenden Tabelle ersetzen. :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:18 Uhr.
Seite 1 von 5  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz