![]() |
Datenbank: SQLite • Version: Sqlite: 3 ZEOS:6.6.6 • Zugriff über: ZEOS
Daten Abfragen
Hallo,
ich habe gestern und heute den ganzen Tag diverse Delphi Foren und Google durchsucht, aber scheinbar ist mein Problem so simpel, das es dazu keine Erklärung gibt. Einfache Frage: Wie kann ich die durch "SELECT * FROM tabelenname" abgefragten Daten ohne ein DBGrid lesen? Die Befehle um die abfrage selbst zu gestalten ect. ist kein Problem, aber wie komme ich an den Inhalt der einzelnen Felder? |
Re: Daten Abfragen
über Fieldbyname(Feldname)
|
Re: Daten Abfragen
ich frage einfach nochmal nach
Delphi-Quellcode:
Sollte das so richtig aussehen?
ShowMessage('Name: ' + ZQuery1.FieldByName('name').AsString)
Weil da bekomme ich die Fehlermeldung dass das Feld name nicht existiert, tut es aber definitiv |
Re: Daten Abfragen
Hallo...
so sollte es eigentlich richtig sein. Du könntest ja mal Groß / Kleinschreibung probieren. Das heißt, den Feldnamen angeben so wie er in der DB steht. Bist du sicher, daß die Query mit Daten voll ist ? :hi: |
Re: Daten Abfragen
danke shonmal für die schnellen antworten.
ich hab die Tabellele selbst erstellt. Ich poste mal entsprechenden Code, bitte nicht schimpfen und wundern über die unsauberkeit, dashier dient erstmal nur zum verstehen der materie um es in das eigentliche Project einzubinden.
Delphi-Quellcode:
//Button 1:
ZQuery1.SQL.Clear; ZConnection1.Database:=Edit1.Text + '.db'; //db.db ZConnection1.Connected:=TRUE; Zquery1.SQL.Add(Edit4.Text); // CREATE TABLE punktelimit ([ID] INTEGER PRIMARY KEY, [name] VARCHAR (40), [punke] INTEGER (10)) ZQuery1.Active:=TRUE; ZQuery1.ExecSQL; ZQuery1.SQL.Clear; ZConnection1.Disconnect; // Button 2: ZConnection1.Database:=Edit1.Text + '.db'; // db.db Zconnection1.Connected:=TRUE;; Zquery1.SQL.Clear; Zquery1.SQL.Add(Edit3.Text); // INSERT INTO [punktelimit] ([name]) VALUES (:test) Zquery1.Active:=TRUE; Zquery1.ExecSQL; Zquery1.SQL.Clear; ZConnection1.Disconnect; // Button 3: ZConnection1.Database:=Edit1.Text + '.db'; // db.db Zconnection1.Connected:=TRUE; Zquery1.SQL.Clear; Zquery1.SQL.Add(Edit2.Text); // SELECT * FROM [punktelimit] ZQuery1.Active:=TRUE; Zquery1.ExecSQL; Zquery1.SQL.Clear; ShowMessage('Feld jetzt'); ShowMessage('Name: ' + ZQuery1.FieldByName('name').AsString) ; //Hier wird der Fehler ausgelöst Zquery1.SQL.Clear; ZConnection1.Disconnect; |
Re: Daten Abfragen
Hallo,
wenn Du eine SELECT Abfrage startest, dann darfst Du die Query nicht mit ExecSQL ausführen, sondern musst Open nutzen, um auf die Daten zugreifen zu können. |
Re: Daten Abfragen
Hallo,
probier doch mal für Button3 folgendes:
Delphi-Quellcode:
mfG burn
// Button 3:
ZConnection1.Database:=Edit1.Text + '.db'; // db.db Zconnection1.Connect; Zquery1.SQL.Clear; Zquery1.SQL.Add(Edit2.Text); // SELECT * FROM [punktelimit] ZQuery1.Open; // Daten sind jetzt im ZQuery1 geladen ShowMessage('Feld jetzt'); ShowMessage('Name: ' + ZQuery1.FieldByName('name').AsString) ; //Hier wird der Fehler ausgelöst //Zquery1.SQL.Clear; // ich glaube der Fehler kommt hier, wahrscheinlich: // "Aktion kann bei geöffneter Datenmenge nicht ausgeführt werden" // Also erst ZQuery1 schließen dann SQLText löschen // mfg burn ZQuery1.Close; Zquery1.SQL.Clear; ZConnection1.Disconnect; |
Re: Daten Abfragen
so ist wahrscheinlich sinnvoller burn, aber der wahre Fehler war so wie es MikeR gesagt hat, SELECT einfach mit Open ausführen...
Aber ich danke euch trotzdem allen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:11 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 by Thomas Breitkreuz