![]() |
Eintragen in Query
Hi,
ich habe eine Query und eine DataSource Komponente. Jetzt will ich einen Eintrag hinzufügen, und habe da folgenden code angewendet:
Code:
Leider geht es nicht, da er meint, eintragen in Datenmenge, die nur zum Lesen ist, nicht möglich. Woran könnte es liegen.
Query1.Insert;
Query1.FieldByName('Name').AsString := 'MeinName'; Query1.Post; Ich weiss, dass es noch die Insert into ... Methode gibt, würde aber gerne diesen Code wenn möglich anwenden. Gruss Nico |
Hi,
erste Frage : Warum benutzt Du kein SQL, geht doch bedeutend einfacher ? zweite Frage : Hast Du auch die Eigenschaft Active auf True gesetzt vor Deinem Einfügen ? |
Hi,
zumindest muß es schon mal so heißen : Query1.FieldByName('Name').value := 'MeinName'; Das mit dem Read/Only fällt mir vielleicht noch ein. Gruß Hansa |
Hi,
hab nichts gegen die andere Methode, mich würde nur interessieren, woran das liegt. Ja, Active habe ich auf True gesetzt. Gruss Nico |
Hallo Scorpion
Normalerweise wird diese Meldung ausgeben, wenn das Select-Statement einen Join enthält z.B.
Code:
oder
SELECT *
FROM Address, AdrSal WHERE Adr_Sal = Sal_Num
Code:
führt genau zu dieser Fehlermeldung. Die BDE kann solche Statements nicht in den Edit-Modus setzen. In ADO geht das, man beachte aber, dass beide Datensätze in den Edit-Modus gesetzt werden. Das ist nicht tragisch, ausser man führt <Query>.Delete aus.
SELECT *
FROM Address JOIN AdrSal ON Adr_Sal = Sal_Num Gruss Xaver |
Hallo Scorpion,
eine TQuery Komponente liefert standardmäßig eine nicht änderbare Datenmenge. Wenn du eine änderbare Datenmenge haben möchtest, der du z.B. einen Datensatz hinzufügen willst, musst du RequestLive auf TRUE setzen. Das allein reicht aber noch nicht. Es müssen noch zusätzliche Bedingungen erfüllt sein, damit du eine editierbare Datenmenge erhälst. Versuch erst RequestLive auf True zu setzen. Sollte es dann nicht funktionieren, poste einmal dein SQL Statement. Wir können dir dann sagen, warum es nicht funktioniert :mrgreen: . |
Hallo MrSpock
Hm, ich habe ganz vergessen, dass RequestLive standardmässig nicht auf True steht. Bei ADO wird das eben automatisch gemacht. :roll: Gruss Xaver |
Hallo Xaver,
ich hatte mich selbst schon einmal gewundert, dass ich meiner Query keine Daten hinzufügen kann und bin dabei daraug gestoßen, dass bei TQuery Komponenten eben RequestLive explizit hesetzt werden muss. Ich wusste aber auch nicht, dass es bei ADO Komponenten anders ist. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 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