Autor Beitrag
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Sa 10.08.02 20:25 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 299



BeitragVerfasst: Sa 10.08.02 21:27 
Verwende die TDBEdit und verknüpfe diese mit der Datasource und einem entsprechenden Feld...

_________________
Keine Signatur ...
bis11 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 262



BeitragVerfasst: 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.

_________________
Live long and prosper
MrSpock \\//
bis11 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 262



BeitragVerfasst: 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:

ausblenden Quelltext
1:
SELECT * FROM MyTable					


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:

ausblenden 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.

_________________
Live long and prosper
MrSpock \\//
bis11 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 262



BeitragVerfasst: 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:
ausblenden Quelltext
1:
MyQuery.Edit					


Bei Neuer-Datensatz:
ausblenden Quelltext
1:
MyQuery.Append					


Und dann bei Speichern:
ausblenden Quelltext
1:
MyQuery.Post					


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.

_________________
Live long and prosper
MrSpock \\//
bis11 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 262



BeitragVerfasst: 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.

_________________
Live long and prosper
MrSpock \\//