Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Wo steckt das Ergebnis des MyQuery ? (https://www.delphipraxis.net/87056-wo-steckt-das-ergebnis-des-myquery.html)

Ajin 22. Feb 2007 17:18

Datenbank: mysql • Version: 4 • Zugriff über: mydac

Wo steckt das Ergebnis des MyQuery ?
 
Hallo!

Nach einigem Hin- und Her bekomme ich einen externen connect auf meine Datenbank. Ihr müsst mir verzeihen - ich hab noch nie mit den mydac komponenten gearbeitet. Ich habe genau mydac 2 symbole auf der Form:

- myconnection
- myquery

Nach erfolgreicher connection wird folgender code ausgeführt:

Delphi-Quellcode:
try
 MyQuery.Open;
 MyQuery.SQL.Text := 'select vorname from usertabelle';
 MyQuery.Execute;
Except
 showmessage('query fehler');
end;
Im Beispieldemo der mydac Komponenten führe ich das gleiche Query aus, es wird auch "Hans" in einem DB Grid angezeigt. (Die Tabelle hat nur einen Datensatz)

Nun frage ich mich: wo steckt der Rückgabewert des querys? Also die Ausgabe "Hans" im DBGrid1 kann ich nirgends finden. Ich hab das DBGrid auch mal gelöscht um eine Fehlermeldung zu provozieren, damit ich die Stelle entdecke wo der Hans in das DBGrid geschrieben wird. Ergebnis: kein Motzen oder Meckern. Das Query wird halt ohne das DBGrid ausgeführt.
*grrrr*

Ich kann zwar bei MyQueryAfterExecute den boolean Result abfragen, aber wo steckt der Hans?

Kann mir das einer erläutern? :)

Jelly 22. Feb 2007 17:23

Re: Wo steckt das Ergebnis des MyQuery ?
 
Nicht Execute, sondern Open aufrufen, wenn Datenmengen zurückgeliefert werden.

Ajin 22. Feb 2007 17:29

Re: Wo steckt das Ergebnis des MyQuery ?
 
Und wie kann ich die Datenmenge visualisieren? Z.b. eine showmessage(dasErgebnis);

monta 22. Feb 2007 17:30

Re: Wo steckt das Ergebnis des MyQuery ?
 
einzelne Felder kannst du besipielsweise so auslesen:

Showmessage(Query.FieldByName('Feldname').AsString );

Ajin 22. Feb 2007 17:42

Re: Wo steckt das Ergebnis des MyQuery ?
 
Hmm dann kommt ein Fehler: Das Feld 'vorname' wurde nicht gefunden, obwohl es eindeutig existiert.

So sieht die Beispieltabelle aus:

user_id | vorname | nachname
---1----|--hans---|--meier--

Meine Form hat ein editfeld indem der user seinen vornamen eingibt. Dann wird online überprüft ob es den user gibt. Deshalb brauch ich als Rückgabewert z.B. den Hans.

Jelly 22. Feb 2007 17:44

Re: Wo steckt das Ergebnis des MyQuery ?
 
Oder eine Datasource auf dein Form legen und mit deinem Query über die Dataset Eigenschaft verknüpfen. Die Datasource Komponente stellt das Verbindungsstück zwischen deiner Query und den datensensitiven visuellen Komponenten dar. Das sind die Komponenten unter der "Data Controls" Palette, also so Dinge wie TDBEdit, TDBGrid usw. Alle haben sie gemein, dass Du sie an eine Datasource knüpfen kannst. Die meisten verfügen weiterhin noch über die Eigenschaft Datafield. Die Visualisierung erfolgt dann ganz automatisch.

Ajin 22. Feb 2007 17:59

Re: Wo steckt das Ergebnis des MyQuery ?
 
Hey Super, in meinem DBGrid steht nun der Hans !!
Ist das nicht umständlich ein DBGrid auf die Form zu legen nur um einen Wert abzufragen?

Naja aber immerhin hab ich den Burschen endlich :-)

Vielen Dank dafür!

mkinzler 22. Feb 2007 18:02

Re: Wo steckt das Ergebnis des MyQuery ?
 
Für einen Wert brauchst du nicht unbedingt ein Grid. Es gibt auch andere Anzeige-Komponenten oder du holst das Ergebnis direkt aus dem Query (.FieldByName().Value)

hoika 22. Feb 2007 18:21

Re: Wo steckt das Ergebnis des MyQuery ?
 
Hallo,

zeig doch noch mal deinen Code,
der das "Vorname" nicht gefunden erzeugt hat.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:46 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-2025 by Thomas Breitkreuz