![]() |
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:
Dessweiteren habe ich die Komponente ADODataSet1 eingefügt und mit der DataSource verbunden.
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; 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] |
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 |
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 ... |
Re: DBgrid sortieren
Es geht nicht um Access, sondern um Paradox (laut Threadtitel) ;)
|
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 |
Re: DBgrid sortieren
nimm statt der AdoDataSet eine TQuery...binde dann diese Query an Dein Grid über eine TDatasource.
|
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:
Allerdings hat Tquerry ja keine Eigenschaft Command Text, was soll ich dafür verwenden?
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; Danke für die Hilfe :hello: Mfg ice |
Re: DBgrid sortieren
Zitat:
Delphi-Quellcode:
Query2.SQL.Text:='...';
|
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 |
Re: DBgrid sortieren
Du musst "Table" auch durch den Namen der abzufragenden Tabelle ersetzen. :-D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz