Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Eintragen in Query (https://www.delphipraxis.net/2031-eintragen-query.html)

Scorpion 4. Jan 2003 11:38


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:
Query1.Insert;
Query1.FieldByName('Name').AsString := 'MeinName';
Query1.Post;
Leider geht es nicht, da er meint, eintragen in Datenmenge, die nur zum Lesen ist, nicht möglich. Woran könnte es liegen.
Ich weiss, dass es noch die Insert into ... Methode gibt, würde aber gerne diesen Code wenn möglich anwenden.

Gruss
Nico

Gast 4. Jan 2003 12:22

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 ?

Hansa 4. Jan 2003 12:24

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

Scorpion 4. Jan 2003 12:26

Hi,

hab nichts gegen die andere Methode, mich würde nur interessieren, woran das liegt. Ja, Active habe ich auf True gesetzt.

Gruss
Nico

xbu58 4. Jan 2003 13:25

Hallo Scorpion

Normalerweise wird diese Meldung ausgeben, wenn das Select-Statement einen Join enthält
z.B.
Code:
SELECT * 
FROM Address, AdrSal
WHERE Adr_Sal = Sal_Num
oder
Code:
SELECT *
FROM Address
JOIN AdrSal ON Adr_Sal = Sal_Num
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.

Gruss
Xaver

MrSpock 4. Jan 2003 13:37

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: .

xbu58 4. Jan 2003 13:43

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

MrSpock 4. Jan 2003 13:49

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 23:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz