DBGrid sortiert anzeigen
-
Hast du denn überhaupt schon eine Verbindung zur Datenbank hergestellt und Daten ausgeben lassen?
Ich gehe davon aus, dass du die dbExpress-Komponenten benutzt? Dann musst du halt das SQLQuery dort benutzen.Vielleicht solltest du erstmal ein bis zwei DB-Tutorials durcharbeiten?
Den Link zu einem findest du in der FAQ.
-
Diese Fragen habe ich erst gestellt, nachdem ich alle Seiten des Kylix 3 Entwicklerhandbuches über Daten durchgelesen habe. In den FAQ's habe ich auch gelesen. Hat eine Woche gedauert. Man wird mit Fachbegriffen überschüttet!
Ich verwende eine MyBase-Datenbank direkt auf dem Rechner.
Ich habe einen ClientDataSet und eine DataSource Komponente.
Meine normalen Datenbank-Anwendungen laufen ohne Probleme.Man braucht ja fast nichts zu tun, wenn Daten nur ausgelesen oder geschrieben werden! Jetzt sollen Sie aber sortiert werden. Es wäre schön, wenn das nach einer weiteren Woche läuft. Ein Link auf eine Beschreibung mit höchstens 100 Seiten würde mir schon weiterhelfen [;)]
-
Wie verbindest du denn das DataSet mit deiner Datenbank, und wie liest und schreibst du Daten?
-
In den CientDataSet Eigenschaften über FileName
/home/cp_data/Data_Wiegen.xml
-
Schreiben:
DataModule_Source->ClientDataSet_WiegenTemp1->Value = SpinEdit1->Value;
Lesen:
SpinEdit1->Value = DataModule_Source->ClientDataSet_WiegenTemp1->Value;
-
Ähh ... ja ...
Ich glaube nicht, dass es eine (eingebaute) Möglichkeit gibt bei der MyBase-Variante die Daten zu sortieren oder überhaupt grossartig was damit zu machen. Die einzige Art der Beeinflussung scheint ja der Einsatz von Filtern zu sein, eine Option zum Sortieren sehe ich dort aber nicht. Du wirst die XML-Datei wohl selbst entsprechend aufbereiten müssen.
Oder eben eine "echte" SQL-DB benutzen. Davon gibt's ja auch datei-basierte Versionen, z.T. auch als Freeware. Ich glaube MyLittleBase ist so eine, allerdings habe ich keinerlei Erfahrungen damit.
-
Das Problem ist, das diese Datenbanken inschwischen auf ca. 20 Anlagen installiert sind (Maschinen-Parameter). Ist nicht so leicht auszutauschen.
Ich werde dann mal weiter üben!
Erstmal vielen Dank für die Tips.
Gruß, Harald
-
weiss, nicht, ob ioch jetzt müll erzähle, aber beim ClientDataSet hat man doch indicies(IndexDefs, IndexFieldNames, IndexName) (gibts bei TDataSet nicht).
benutze diese auch zur sortierung (aber mit daten aus eine "richtigen" DB)
müsste doch eigentlich auch mit xml-daten funken, oder?
-
Hier gibt's etliche Artikel zum DataSet, u.a. auch zu Filtern. Vielleicht kannst du dort ja noch ein paar Informationen entnehmen.
-
Das war ein ganz heißer Tip von tachyon
So gehts wunderbar:void __fastcall TForm_Datenbank_Alle::DBGrid1TitleClick(TColumn *Column) { int sw_title; sw_title = String(Column->ID).ToInt(); // ID = Original-Position bei Start switch(sw_title) { case 0: // "Prog_Nummer" = Titelname der Spalte DataModule_Source->ClientDataSet_Wiegen->IndexFieldNames = "Prog_Nummer"; break; case 1: // "Pro_Name" DataModule_Source->ClientDataSet_Wiegen->IndexFieldNames = "Prog_Name"; break; case 2: // "Gewicht1" DataModule_Source->ClientDataSet_Wiegen->IndexFieldNames = "Gewicht1"; break; case 4: // "Gewicht2" DataModule_Source->ClientDataSet_Wiegen->IndexFieldNames = "Gewicht2"; break; default: break; } }
Oder alle Felder sortieren
DataModule_Source->ClientDataSet_Wiegen->IndexFieldNames = Column->FieldName;
Fehlt nur noch vorwärts / rückwärts !
Nochmals vielen Dank an alle!