![]() |
Re: ADS Datenbank meldet 'im Lesemodus' bei Query.edit
Zitat:
Delphi-Quellcode:
Query.SQL.Text:= '...Set exportiert=:irgendwas...';
Query.ParamByName('irgendwas').AsDateTime:=now(); |
Re: ADS Datenbank meldet 'im Lesemodus' bei Query.edit
Zitat:
Delphi-Quellcode:
DM.AdsQBelege.SQL.ADD('Update Belege Set Exportiert = ' +
:ExportDatum + ' Where Exportiert is null AND Belegdatum Between :MonatsAnfang and :Monatsende'); DM.AdsQBelege.ParamByName('ExportDatum').AsDateTime := now; DM.AdsQBelege.ParamByName('MonatsAnfang').BeginOfTheMonth(BelegDatum); DM.AdsQBelege.ParamByName('ExportDatum').EndOfTheMonth(BelegDatum); |
Re: ADS Datenbank meldet 'im Lesemodus' bei Query.edit
Ist ja toll der Vorschlag von Union und JoachimD.
Da werden erst Variable im SQL-String eingesetzt und danach erst gefüllt.
Delphi-Quellcode:
Leider gibt es die Funktion BeginOfTheMonth() nicht, sollte das als Hinweis gedacht sein, dass ich mir die schreiben soll, oder gibt es sowas schon irgendwo ?
DM.AdsQBelege.ParamByName('MonatsAnfang').BeginOfTheMonth(BelegDatum);
DM.AdsQBelege.ParamByName('ExportDatum').EndOfTheMonth(BelegDatum); Hier und über google konnte ich nichts finden, es sei denn man programmiert in PHP. Jetzt kommen wir langsam weiter, nur noch ein kleiner Schritt. |
Re: ADS Datenbank meldet 'im Lesemodus' bei Query.edit
Sorry, es muss natürlich heissen
Delphi-Quellcode:
Ich war wohl durch die Pascal-Syntax etwas begin-geschädigt ;) Das sind ganz normale Delphi-Funktionen, zu finden in DateUtils und OH.
DM.AdsQBelege.ParamByName('MonatsAnfang').StartOfTheMonth(BelegDatum);
DM.AdsQBelege.ParamByName('ExportDatum').EndOfTheMonth(BelegDatum); |
Re: ADS Datenbank meldet 'im Lesemodus' bei Query.edit
Jetzt wirds schon besser, wieder einen Schritt weiter.
Nun noch ein paar Flüchtigkeitsfehler beseitigen und dann geht es schon.
Delphi-Quellcode:
So funktioniert das jetzt.AktMonat:=DM.AdsQBelege.FieldByName('BelegDatum').AsDate; . . . StartMonat:=StartOfTheMonth(AktMonat); EndMonat:=EndOfTheMonth(AktMonat); DM.AdsQBelege.SQL.ADD('Update Belege Set Exportiert = :ExportDatum' + ' Where Exportiert is null AND Belegdatum Between :MonatsAnfang and :MonatsEnde'); DM.AdsQBelege.ParamByName('ExportDatum').AsDateTime := Now(); DM.AdsQBelege.ParamByName('MonatsAnfang').AsDate := StartMonat; DM.AdsQBelege.ParamByName('MonatsEnde').AsDate := EndMonat; DM.AdsQBelege.ExecSQL; Hat noch jemand was daran auszusetzen, dass es nur unter bestimmten Bedingungen laufen kann oder dass noch Exceptions abgefangen werden müssen oder sonst was, das ich als begeisterter, wissbegieriger SQL-Schüler wissen sollte ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:12 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