Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Insert (https://www.delphipraxis.net/10593-sql-insert.html)

Hansa 21. Okt 2003 20:19


SQL Insert
 
Hi,

Ich füge folgendermaßen Daten in eine Interbase-DB ein:

SQL-Code:
//  MyStatDataSet.open;
WHILE NOT EOF (k) DO BEGIN
  MyDataSet.insert;
  MyDataSet.FindField ('ID').AsInteger := StrToInt (copy (zeile,1,10));
.  // ^ Fehler kommt hier ^
.
.
.
  MyDataSet.Post;
end;
Dabei kommt folgender Fehler:

"Cannot perform Operation on a closed dataset"

Egal, ob ich das Dataset im oi auf active := true oder nicht setze, oder erst zur Laufzeit, immer kommt dieser Fehler. Was kann das sein ?

mirage228 21. Okt 2003 20:24

Re: SQL Insert
 
Hi,

ich hab da so eine Vermutung!

Vielleicht musst du noch schreiben:

Delphi-Quellcode:
MyDataSet.Open;
und nicht nur MyStatDataSet.open;

mfG
mirage228

Hansa 21. Okt 2003 20:27

Re: SQL Insert
 
Das ist ein Schreibfehler, außerdem ist es noch auskommentiert. :P

mirage228 21. Okt 2003 20:29

Re: SQL Insert
 
Hi,

sorry, hatte die "//" vor dem Ausdruck übersehen...
aber schon seltsam, dass der DelphiCode Parser der DP die Kommentare nicht Blau färbt...

mfG
mirage228

Hansa 21. Okt 2003 20:49

Re: SQL Insert
 
OT:

@mirage: Dann schau dir mal an, was in dem Quelltext blau ist. Da ist nämlich was gefärbt. Ich habe das absichtlich so gemacht, denn vorher waren da noch ganz andere Sachen drin. Solche Ausreden zählen aber sowieso nicht. :mrgreen:

APP 21. Okt 2003 20:56

Re: SQL Insert
 
hallo Hansa,
mal eine blöde Idee:

Zitat:

Zitat von Hansa
SQL-Code:
//  MyStatDataSet.open;
WHILE NOT EOF (k) DO BEGIN
  MyDataSet.insert;
  MyDataSet.Edit;  // <------------------------------------------------ vielleicht hilft das?
  MyDataSet.FindField ('ID').AsInteger := StrToInt (copy (zeile,1,10));
.  // ^ Fehler kommt hier ^
.
.
.
  MyDataSet.Post;
end;

[EDIT]
OK,OK,
das war wirklich eine blöde Idee, man sollte VOR dem Posten in die Hilfe schauen:
Zitat:

OH: Nach dem Aufruf von Insert können die Benutzer Daten in die Felder des neuen Datensatzes eingeben und anschließend die Änderungen mit Post (oder mit ApplyUpdates bei aktivierter Zwischenspeicherung) in die Datenbank eintragen.
Sorry :cry: [/EDIT]

Jelly 21. Okt 2003 21:01

Re: SQL Insert
 
Hi,
probier doch mal statt FindField die Methode FieldByName zu benutzen.

Gruß,
Tom

r_kerber 22. Okt 2003 13:55

Re: SQL Insert
 
Hallo Hansa,

von welchem Typ ist eigentlich MyDataSet?

Hansa 22. Okt 2003 18:11

Re: SQL Insert
 
IBDataSet

r_kerber 22. Okt 2003 19:22

Re: SQL Insert
 
IBDataSet ist doch, wenn ich das richtig verstehe, dafür gedacht, die SQL-Statements eizugeben (SELECT, INSERT, UPDATE, DELETE). Vielleicht gibt es hier Probleme mit den Methoden, die für Tabellen gedacht sind. Versuche dasselbe doch mal mit einer IBTable.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 Uhr.
Seite 1 von 2  1 2      

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