Entwickler-Ecke
Datenbanken - Einen einzigen Datensatz auswählen ??
bis11 - Sa 10.08.02 20:25
Titel: Einen einzigen Datensatz auswählen ??
Hi,
ich habe eine Paradox-Tabelle mit SQL erstellt. Habe damit auch nur die Komponenten TQuery und TDatasource im Prog. Wie kann ich jetzt einen einzelnen Datensatz aufrufen und den in meinen Editfeldern anzeigen lassen. Es ist die TEdit-Komponente.
Danke für eure Hilfe im vorraus.
Gruß
BIS11
Steffer - Sa 10.08.02 21:27
Verwende die TDBEdit und verknüpfe diese mit der Datasource und einem entsprechenden Feld...
bis11 - Sa 10.08.02 21:40
Wie soll ich das Verbinden, wenn die Daten aus den TEdit Feldern per SOL-Befehl in die Datenbank geschrieben werden. Ich habe keine TTable-Kompo im Prog ?
MrSpock - Sa 10.08.02 21:52
Hallo bis11,
ich verstehe nicht ganz, was für eine TQuery Komponente du jetzt in deiner Form hast. Wenn es die TQuery Komponente ist, mit der du nur die Tabelle erstellt hast, enthält diese natürlich keine Datenmenge, die du anzeigen oder Editieren kannst.
Willst du jetzt auf die Tabelle zugreifen, solltest du noch eine TTable Komponente hinzufügen, die auf die gerade erstellte Tabelle zeigt oder, falls du nur Teile der Tabelle haben möchtest und du nicht mit Filtern arbeiten kannst oder willst, eine zusätzliche TQuery Komponente einsetzen, die über ein SELECT Statement eine Datenmenge zurückliefert. Willst du jedoch die Datenmenge editieren können, musst du bestimmte Bedingungen einhalten, damit die Datenmenge überhaupt editieren (ändern) kannst.
bis11 - Sa 10.08.02 22:02
Ich habe die TQuery-Kompo von der BDE. Ich übergebe im Programm, wann, wie die Tabelle erstellt wird per festgelegtem SQL-Befehl. Dann gebe ich in meine TEdit-Felder meine Daten ein und übergebe diese ebenfalls im Programm per SQL-Befehl an die Tabelle. Diese ganzen SQL-Befehle werden in der TQuery abgearbeitet.
MrSpock - So 11.08.02 11:57
Hallo bis11,
das bedeutet also, dass du den SQL String der TQuery Komponente überschreibst, einmal um die Tabelle zu erstellen und dann, um ein UPDATE oder INSERT einzufügen!?
Es wäre in diesem Fall einfach günstiger eine TTable Komponente zu nutzen, die auf die mit CREATE TABLE erstellte Tabelle zeigt. Dann kannst du anstatt der einfachen TEDIT die datensensitiven TDBEDIT Komponenten benutzen, die direkt mit den Feldern der Tabelle verbunden sind.
Möchtest du aber, z.B. um es zu üben, lieber mit TQuery Komponenten arbeiten, musst du den SQL String erneut überschreiben oder eine neue TQuery Komponente einfügen, der du z.B. den SQL String:
wobei MyTable natürlich durch den echten Tabellennamen ersetzt werden muss. Dann kannst du wieder die datensensitiven TDBEdit Komponenten nutzen, da du eine Datenmenge zurückbekommst. Willst du aber unbedingt genau einen Datensatz, wäre der SQL String:
Quelltext
1: 2:
| SELECT * FROM MyTable WHERE KundenNr = 17 |
wobei ich hier als Beispiel einmal angenommen habe, Kundenummer sei ein eindeutiges Integer Feld. Jetzt hast du wieder eine Datenmenge, aber eine mit genau einem Datensatz.
bis11 - So 11.08.02 13:34
Zitat: |
das bedeutet also, dass du den SQL String der TQuery Komponente überschreibst, einmal um die Tabelle zu erstellen und dann, um ein UPDATE oder INSERT einzufügen!?
|
Ja, das mache ich. Ich schaffe es ja auch die Datensätze anzuzeigen in einer DB-Kompo. Nur was ich im Moment noch nicht schaffe ist, die Daten in der Kompo einzugeben und der Datenbank zu übergeben.
MrSpock - So 11.08.02 18:32
Hallo bis11,
wenn du die Daten schon in DBEdit anzeigst, solltest du entweder eine DBNav Komponente oder entsprechende Schalter hinzufügen, die den angezeigten Datensatz in den Edit - Zustand bringt oder einen Neuen Datensatz einfügen lässt.
Beim Drücken des Edit-Schalters schreibst du dann:
Bei Neuer-Datensatz:
Und dann bei Speichern:
Wie ich aber schon erwähnt habe, damit das Ganze funktioniert, muss die Query eine editierbare Datenmenge enthalten. Dazu muss zunächst RequestLive auf True gesetzt werden und anschließend, nach Ausführung des SQL SELECT Statements mit CanModify geprüft werden, ob die Datenmenge wirklich geändert werden kann.
bis11 - So 11.08.02 18:59
Hi MrSpock,
ich danke Dir für Deine schnellen Antworten. Ich habe jetzt eine Lösung gefunden, wie ich die Daten in den Edit-Feldern darstellen kann und gleichzeitig eingeben kann über eine TQuery-Komponente.
Ich habe nur folgende Eigenschaften auf True gesetzt :
1.) Query1.RequestLive
2.) Query1.CachedUpdate
Das war auch schon alles. Jetzt fange ich den Klick auf die einzelnen DBNavigator-Buttons ab und mache den Rest mit SQL und überschreibe jedesmal die SQL-Anweisung in der Query-Kompo. Bin voll und ganz damit zufrieden.
MrSpock - So 11.08.02 19:07
Hallo bis11,
wenn alles so klappt wie gewünscht, ist ja das Ziel erreicht. :D
Für zukünftige Probleme ähnlicher Art empfehle ich bei Zugriff auf eine einzige Tabelle, die TTable Komponente genauer anzuschauen. Sie ist wirklich einfach anzuwenden.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!