![]() |
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; |
Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
Hi,
bist du sicher, das die Feldnamen korrekt sind? z.B. Zitat:
|
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)');
|
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)'); ... |
Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
leider funktioniert es so auch nicht ("Antwort 1" oder [Antwort 1])
|
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? |
Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
Hallo,
wenn der Zugriff wirklich über die BDE erfolgt, dann muss die Abfrage den ![]()
SQL-Code:
Freundliche Grüße
INSERT INTO Fragen f (UID, ... f."Antwort 1", ...
|
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 |
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 |
Re: Daten mit TQuery in Datenbank schreiben verursacht Fehle
Zitat:
|
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 |
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? |
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? |
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 |
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 |
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 |
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 |
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?
|
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.
|
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