Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Daten mit TQuery in Datenbank schreiben verursacht Fehler (https://www.delphipraxis.net/86378-daten-mit-tquery-datenbank-schreiben-verursacht-fehler.html)

Seniorenzivi 13. Feb 2007 12:37

Datenbank: Access • Zugriff über: BDE?

Daten mit TQuery in Datenbank schreiben verursacht Fehler
 
Hallo
Ich möchte mit Hilfe eine TQuery´s Daten in eine Access Datenbank schreiben. Leider bekomme ich das nicht ganz hin. Ich bekomme immer die Fehlermeldung "Ungültiges Schlüsselwort Symbol-String: 1, zeilennummer: 1."

Danke für eure Hilfe

Delphi-Quellcode:
SQL.Close;
SQL.SQL.Add('INSERT INTO Fragen (UID, Frage, Antwort 1, Antwort 2, Antwort 3, Antwort 4, Antwort 5) VALUES (:UID, :Frage, :Antwort1, :Antwort2, :Antwort3, :Antwort4, :Antwort5)');
SQL.ParamByName('UID').AsInteger := UID;
SQL.ParamByName('Frage').AsString := Edit2.Text;
SQL.ParamByName('Antwort1').AsString := Edit3.Text;
SQL.ParamByName('Antwort2').AsString := Edit4.Text;
SQL.ParamByName('Antwort3').AsString := Edit5.Text;
SQL.ParamByName('Antwort4').AsString := Edit6.Text;
SQL.ParamByName('Antwort5').AsString := Edit8.Text;
SQL.ExecSQL;

NormanNG 13. Feb 2007 12:39

Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
 
Hi,


bist du sicher, das die Feldnamen korrekt sind?
z.B.
Zitat:

Antwort 1

Gruber_Hans_12345 13. Feb 2007 12:41

Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
 
... ansonsten probieren die Feldnamen mit einem leerzeichen einfach unter " zu setzen

Delphi-Quellcode:
SQL.SQL.Add('INSERT INTO Fragen (UID, Frage, "Antwort 1", "Antwort 2", "Antwort 3", "Antwort 4", "Antwort 5") VALUES (:UID, :Frage, :Antwort1, :Antwort2, :Antwort3, :Antwort4, :Antwort5)');

joachimd 13. Feb 2007 12:42

Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
 
Delphi-Quellcode:
SQL.Close;
SQL.SQL.Add('INSERT INTO Fragen (UID, Frage, [Antwort 1], [Antwort 2], [Antwort 3], [Antwort 4], [Antwort 5]) VALUES (:UID, :Frage, :Antwort1, :Antwort2, :Antwort3, :Antwort4, :Antwort5)');
...

Seniorenzivi 13. Feb 2007 12:46

Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
 
leider funktioniert es so auch nicht ("Antwort 1" oder [Antwort 1])

NormanNG 13. Feb 2007 12:49

Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
 
Hi,

Sorry, vergessen: Willkommen in der DP! :oops:

Was ist denn die Fehlermeldung?
Bist du dir sicher mit den Feldernamen?

marabu 13. Feb 2007 12:52

Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
 
Hallo,

wenn der Zugriff wirklich über die BDE erfolgt, dann muss die Abfrage den Syntax-Regeln von LocalSQL gehorchen - z.B. so:

SQL-Code:
INSERT INTO Fragen f (UID, ... f."Antwort 1", ...
Freundliche Grüße

Seniorenzivi 13. Feb 2007 13:00

Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
 
Also ich habe in der DB bei den Feldnamen überall einmal das Lerzeichen rausgemacht...Die Fehlermeldung ist jetz weg. Aber, ich bekomme die Fehlermeldung, das Die Tabelle "Fragen" nicht gefunden wurde. Ich denke ich habe da ein kleines Konfigurationsproblem mit meine Objekten.

Ich habe ein TQuery was mit einer TDataSource verbunden ist. Was wiederum mit einem TADOTable verbunden ist.

Danke für eure Hilfe

marabu 13. Feb 2007 13:06

Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
 
Du musst aufpassen mit der Eigenschaft DataSource - bei der Komponente TQuery steuert die DataSource die Master-Detail-Funktionalität. Mir scheint, das ist nicht unbedingt das, was du hier brauchst. Wenn du weißt was du tust, dann ignoriere meinen Hinweis. Ansonsten entferne DataSource aus TQuery. Wenn du die Query visualisieren möchtest, dann nimm eine DataSource und trage die Query dort als DataSet ein.

Freundliche Grüße

Seniorenzivi 13. Feb 2007 13:18

Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
 
Zitat:

Zitat von marabu
DAnsonsten entferne DataSource aus TQuery. Wenn du die Query visualisieren möchtest, dann nimm eine DataSource und trage die Query dort als DataSet ein.

Habe ich gemacht, aber wie bekomme ich dann die Verbindung zur Datenbank hin wenn ich als DataSet die SQl drin stehen habe?

marabu 13. Feb 2007 13:22

Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
 
Die Verbindung zur Datenbank stellst du über die Eigenschaft DatabaseName von TQuery her.

Freundliche Grüße

Seniorenzivi 13. Feb 2007 13:29

Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
 
Meine DB heißt umfrage.mdb

Soll ich den kommpletten Pfad oder nur "umfrage.mdb" eintragen?

marabu 13. Feb 2007 13:34

Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
 
Zwischenfragen:

Warum greifst du mit der BDE auf eine Access-Datenbank zu?
Welche Delphi-Version setzt du ein?

Seniorenzivi 13. Feb 2007 13:39

Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
 
Ich nutze Delphi 7 Enterprise. Da ich Delphi in der Schule lerne und der Lehrer wahrscheinlich sebst nicht den Unterschied zwischen BDE und ADO kennt weiß ich den leider auch net.

Mfg Benjamin

marabu 13. Feb 2007 13:46

Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
 
Hallo Benjamin,

hast du in deinem aktuellen Projekt überhaupt schon einmal erfolgreich auf diese Access-Datenbank zugegriffen?

Freundliche Grüße

Seniorenzivi 13. Feb 2007 13:51

Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
 
Ja an anderen Stellen funktioniert der Zugriff Perfekt. Leider haben wir noch nie eine SQL-Abfrage mit Delphi durchgeführt und sollen dies nun auf einmal bringen.

Danke für deine mühe

marabu 13. Feb 2007 18:59

Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
 
Hallo Benjamin,

wenn der Zugriff bereits ohne SQL funktioniert, dann hast du sicher mit der TTable-Komponente gearbeitet. Diese kommt zwar ohne SQL daher, aber die Eigenschaft DatabaseName hat sie auch. Du kannst bei der TQuery-Komponente den Wert dieser Eigenschaft exakt übernehmen, wenn sich die Tabelle FRAGEN auch in der Datenbank UMFRAGEN.MDB befindet.

Freundliche Grüße

Seniorenzivi 13. Feb 2007 19:11

Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
 
Hi, also ich konnte das Problem jetzt beheben, in dem ich mit einer TADOTable geabreitet habe. Das einzigste Problem ist, wenn ich zum Beispiel einen Datensatz löschen will, ist das sich die Anzeigen (DBGrid oder DBLookupComboBox) nicht aktualisieren. wie kann ich das ereichen?

marabu 13. Feb 2007 19:15

Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
 
Wenn du den Datensatz über die Table-Komponente (ADOTable.Delete) löschst, dann aktualisieren sich die mit dieser Table-Komponente via DataSource verknüpften Controls automatisch. Löschst du in einer anderen Komponente, dann musst du die Methode ADOTable.Requery() verwenden um die Anzeige zu synchronisieren.

Seniorenzivi 13. Feb 2007 19:27

Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
 
Ok Thx jetz funktioniert erst einmal alles


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:41 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