![]() |
Datenbank: Firebird • Version: 1.5 • Zugriff über: Dataset
DeleteSQL
Hallo,
habe ein Problem mit der u.g. Routine einige Datensätze in einer Tabelle zu löschen. Die Tabell gibts es, die Felde ebenfalls und die Datensätze auch. Bekommen eine Fehlermeldung "IBDatasetArtikelStanzen: Operation bei leeren Datenmenge nicht ausführbar"
Delphi-Quellcode:
Was sehe ich hier nicht?
DataArtikelStanzen.IBDatabaseArtikelStanzen.Close;
DataArtikelStanzen.IBDataSetArtikelStanzen.DeleteSQL.Clear; DataArtikelStanzen.IBDataSetArtikelStanzen.DeleteSQL.Text := 'delete from ARTIKELSTANZEN where ARTIKEL_ID = ' + QuotedStr(IntToStr(selectArtikel)); DataArtikelStanzen.IBDataSetArtikelStanzen.Open; DataArtikelStanzen.IBDataSetArtikelStanzen.Delete; Danke. |
AW: DeleteSQL
Ein .Open liefert eine Ergebnismenge zurück. Wie soll es eine Ergebnismenge bei einem "DELETE ..." geben?
Dafür gibts die Exec(SQL)-Methode wenn man SQL-Statements ohne Ergebnismenge ausführen will. |
AW: DeleteSQL
Delphi-Quellcode:
So bekommen ich die Meldung "Verwenden Sie Open für eine select-Anweisung"
DataArtikelStanzen.IBDatabaseArtikelStanzen.Close;
DataArtikelStanzen.IBDataSetArtikelStanzen.DeleteSQL.Clear; DataArtikelStanzen.IBDataSetArtikelStanzen.DeleteSQL.Text := 'delete from ARTIKELSTANZEN where ARTIKEL_ID = ' + QuotedStr(IntToStr(selectArtikel)); DataArtikelStanzen.IBDataSetArtikelStanzen.ExecSQL; |
AW: DeleteSQL
Zitat:
Delphi-Quellcode:
delete * from...
|
AW: DeleteSQL
* wird bei delete nicht verwendet. Es wird der gesamter Datensatz gelöscht.
|
AW: DeleteSQL
Das Statement unter DeleteSQL wird aufgerufen, wenn man ein <DataSet>.Delete durchführt.
Lass Dir dies am Besten in der IDE erstellen, dann wird diese parametrisiert angelegt. |
AW: DeleteSQL
Das Statement denke ich passt schon so... Ich kenne die Komponente nicht, gehe aber davon aus, dass wenn es ein .DeleteSQL gibt, dass es dafür dann auch einen gesonderten Aufruf gibt. Ein .ExecSQL bezieht sich vermutlich auf die Eigenschaft .SQL und nicht auf .DeleteSQL
|
AW: DeleteSQL
Zitat:
Zitat:
|
AW: DeleteSQL
Hallo,
Zitat:
delete from ARTIKELSTANZEN where ARTIKEL_ID = '7' Ist das Feld ARTIKEL_ID ein String-Feld (z. B. varchar)? Falls nicht, wäre das QuotedStr überflüssig. Gruß Frank |
AW: DeleteSQL
Zitat:
Zitat:
Zitat:
Wenn man man mit DataSets arbeitet, führt .Open das SelectSQL .Delete das DeleteSQL usw. aus. Die Statement müssen entsprechend parametrisiert sein. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:13 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 by Thomas Breitkreuz