Entwickler-Ecke
Datenbanken - ClientDataSet, richtiger Umgang
elzumo - Fr 09.11.07 00:27
Titel: ClientDataSet, richtiger Umgang
Moin, war gestern auf der Suche nach einer Datenbank, die ich leicht lokal laufen lassen kann, für ein Programm, dass nur auf einem Rechner laufen und Daten speichern muss.
Wollt mal fragen, ob ich ClientDataSet richtig verwende.
Das ganze wird als MyBase-xml-Tabelle gespeichert.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| procedure TForm2.Button1Click(Sender: TObject); begin with Form1.ClientDataSet1 do begin Insert; FieldByName('Vorname').AsString := Edit1.Text; FieldByName('Nachname').AsString := Edit2.Text; FieldByName('Zieladresse').AsString := Edit3.Text + ' ' + Edit4.Text; FieldByName('ZielPLZ').AsInteger := StrToInt(Edit5.Text); FieldByName('ZielOrt').AsString := Edit6.Text;
FieldByName('Startadresse').AsString := Edit7.Text + ' ' + Edit8.Text; FieldByName('StartPLZ').AsInteger := StrToInt(Edit9.Text); FieldByName('StartOrt').AsString := Edit10.Text;
FieldByName('Datum').AsDateTime := DateTimePicker1.DateTime; FieldByName('Kilometer').AsInteger := StrToInt(Edit11.Text); Post; end; Close; end; |
Mal davon abgesehen, ob das so Sinn macht (zum Beispiel sollte es in der Tabelle noch ein Feld für die Id geben usw): ist es so korrekt?
Kenne aus MySQL und SQL "Select * From usw.", ist es auch möglich hier so zu arbeiten?
Wenn ja: Wie?
Und wenn nein, wie kann ich dann z.B. nur Datensätze ausgeben, die z.b. ein A im Vornamen haben?
Vielen Dank!
elzumo
hansa - Fr 09.11.07 05:45
Titel: Re: ClientDataSet, richtiger Umgang
elzumo hat folgendes geschrieben: |
..Und wenn nein, wie kann ich dann z.B. nur Datensätze ausgeben, die z.b. ein A im Vornamen haben?
|
Ich sehe da Insert und Post. Die Frage geht jetzt um "ausgeben", oder wie ? Und es geht um ein In-Memory-Dataset, genannt ClientDataSet ? :shock: Das muss schon etwas näher erläutert werden.
elzumo - Fr 09.11.07 08:17
Ja, der Quelltextausschnitt ist da, weil ich nicht wusste, ob ich so korrekt mit dieser Komponente arbeite und fragen wollte, ob das Einfügen so korrekt ist.
Habe nun noch eine DadaSource und ein DBGrid.
Und in dem DBGrig werden alle Felder ausgegeben.
Wie kann ich es nun bewerkstelligen, dass man nach bestimmten Werten in der DB suchen kann?
Wie gesagt, kenne aus MySQL: Select * From kunden where usw.
Wie mache ich es hier?
Grud elzumo
alzaimar - Fr 09.11.07 09:11
elzumo hat folgendes geschrieben: |
| Habe nun noch eine DadaSource... |
:rofl: Die Dada-Source trifft den Nagel auf den Kopf...
Zum Thema: Du machst das schon richtig, wobei ich der Übersichtlichkeit halber persistente Datenfelder (rechte Maustaste, Alle Felder hinzufügen) bevorzuge.
Mit SQL kannst Du so nicht arbeiten, das Filtern etc. machst Du per Hand, z.B. mit der 'Filter' und 'Filtered' Eigenschaft.
Delphi-Quelltext
1: 2:
| MyClientDataset.Filter := 'Name like ''A%'''; MyClientDataset.Filtered := True; |
Das müsste eigentlich klappen.
WEnn Du unbedingt SQL verwenden willst, gibt es einige niedliche SQL-Komponenten. Mir fällt dabei 'TjanSQL' und 'SQLlite' ein. TJanSQL ist eine auf Text-Dateien basierende Komponente, die mit SQL umgehen kann, also genau das richtige für Dich.
elzumo - Fr 09.11.07 14:25
Jo, ist sehr früh gewesen, man beachte die Uhrzeit. Soll natürlich DataSource heißen. ;)
Danke für die Tipps, werds mal so probieren, denn die Variante mit der XML-Datei gefällt mir sehr gut.
Alles ein wenig gewöhnungsbedürftig, aber ich werd mal ein wenig herumspielen und fals ich Probleme habe mich noch ein Mal melden.
Gruß: elzumo
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!