![]() |
AW: DeleteSQL
Versuch es doch mal so:
Delphi-Quellcode:
Gruß
DataArtikelStanzen.IBDatabaseArtikelStanzen.Close;
DataArtikelStanzen.IBDatabaseArtikelStanzen.SQL.Text:='delete from Tabelle where id=123456'; DataArtikelStanzen.IBDatabaseArtikelStanzen.ExecSQL; // vllt. noch die betroffenen Zeilen auslesen DataArtikelStanzen.IBDatabaseArtikelStanzen.Close; K-H |
AW: DeleteSQL
Zitat:
MKINZLER hat schon die richtigen Hinweise gegeben. DeleteSQL ist nicht für den manuellen Aufruf gedacht, sondern implementiert die Umsetzung des Dataset.Delete. |
AW: DeleteSQL
Zitat:
|
AW: DeleteSQL
Zitat:
Nach meinem Verständnis verbirgt sich hinter DataArtikelStanzen.IBDatabaseArtikelStanzen. eine Query und dann sollte das passen, oder hab ich da was in den falschen Hals bekommen? Gruß K-H |
AW: DeleteSQL
Hinter "DataArtikelStanzen.IBDatabaseArtikelStanzen" verbirgt sich ein Dataset. Komisch, ich habe es schon so einigemale benutzt ohne Probleme. Auch ohne dem "where ...". Habe auch für ARTIKEL_ID eine 3 gesetzt, wie in der Tabelle. QuotedStr ist falsch an dieser Stelle (war nur ein Versuch).Immer wieder der selber Fehler.
Hier noch ein Beispiel:
Delphi-Quellcode:
und es funktioniert.
DataModuleAlternativMaterial.MatZuKunden_Grid.Close;
DataModuleAlternativMaterial.MatZuKunden_Grid.DeleteSQL.Clear; DataModuleAlternativMaterial.MatZuKunden_Grid.DeleteSQL.Text := 'DELETE FROM MATZUKUNDEN WHERE MATERIALID LIKE ' + IntToStr(selectmaterial); DataModuleAlternativMaterial.MatZuKunden_Grid.Open;
Delphi-Quellcode:
auch das funktioniert.
DatamodulePlannung.DataModule5.IBDataSetGridPlannung.Close;
DatamodulePlannung.DataModule5.IBDataSetGridPlannung.DeleteSQL.Clear; DatamodulePlannung.DataModule5.IBDataSetGridPlannung.DeleteSQL.Text := 'delete from PLANUNG'; DatamodulePlannung.DataModule5.IBDataSetGridPlannung.Open; DatamodulePlannung.DataModule5.IBDataSetGridPlannung.Delete; |
AW: DeleteSQL
Zitat:
Die Fehlermeldung deutet darauf hin, dass die Datenmenge LEER ist und kein Datensatz nach dem .Open vorhanden ist. |
AW: DeleteSQL
Mit " Label138.Caption := IntToStr(DataArtikelStanzen.IBDataSetArtikelStanze n.RecordCount); stelle ich fest, dass RecordCount = 0 ist, obwohl mindestens 2 Datensätze drin sind. Deshalb ist nichts zu löschen da. Also werde ich mir mal das Dataset anschauen.
|
AW: DeleteSQL
Es ist immer ganz wichtig so wenig Query-Komponenten zu verwenden, wie nur irgend möglich. Am Besten nur eine verwenden, dann hat man das Golden Ring-Anti-Pattern perfekt umgesetzt.
Zitat:
Warum keine
Delphi-Quellcode:
die fix und fertig da ist und ausschließlich zum Löschen von einem Planungsdatensatz vorhanden ist?
PlanungDeleteQuery
Eine Methode davor gebaut
Delphi-Quellcode:
Evtl. viel zu einfach und zu sehr straight forward ...
procedure TMyDataModule.DeletePlanung( PlanungID: Integer );
begin PlanungDeleteQuery.ParamByName( 'ID' ).Value := PlanungID; PlanungDeleteQuery.ExecSQL; end; |
AW: DeleteSQL
@Sir Rufo
DRY? Warum für 50 Fragestellungen 50 Querys definieren wenn 50 x SQLText reicht? Gruß K-H |
AW: DeleteSQL
Zitat:
Hier haben wir es allerdings mit einem SuperGAU zu tun. Die Query wird zur Anzeige von Daten verwendet und wird dann mal flugs umgebaut. Da kräuseln sich einem die Nackenhaare. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02: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