![]() |
Datenbank: Firebird • Version: 2.1 • Zugriff über: Fibplus
Datum autom. ausrechnen
Hallo zusammen
in meiner Anwendung verwende ich folgenden Code um von einem Datum "maxdate" ein paar Monate dazuzurechnen. > (FieldByName('CS').Value * 30) // CS glein eine Anzahl von Monaten. Leider besteht das Problem das dies ab und zu nicht geht. Mir ist nicht ganz klar wieso. :roll:
Delphi-Quellcode:
habt Ihr mir einen Tipp?
procedure TDM.main_nc_calc(Sender: TObject);
var maxdate : string; d_accept : string; begin with Q_tmp do begin SQL.Text := ('SELECT MAX( D_DATE ) MAX_OF_D_DATE, D_ACCEPTANCE FROM '+ sql_string_table_d +' WHERE' + '(ID_AREA = '+''''+(''+id_value+''''+')')+ 'GROUP BY D_ACCEPTANCE ORDER BY 1 DESC'); ExecQuery; Close; d_accept := Q_tmp.FieldByName('D_ACCEPTANCE').AsString; maxdate := Q_tmp.FieldByName('MAX_OF_D_DATE').AsString; end; if maxdate > '1' then with tmp do begin Close; SelectSQL.Clear; SelectSQL.Add (sql_string_table); AutoUpdateOptions.UpdateTableName := (table_name); Open; end; tmp.Open; Camps.Open; with tmp do begin Edit; FieldByName('NC').AsString := DateToStr(StrToDate(maxdate)+((FieldByName('CS').Value * 30))); FieldByName('ACCEPTANCE').AsString := d_accept; post; end; end; Manfred |
Re: Datum autom. ausrechnen
Wieso nutzt Du nicht DateUtils (IncMonths oder so ähnlich, kann gerade nicht nachsehen). Und wieso hantierst Du da umständlich mit Strings herum?
|
Re: Datum autom. ausrechnen
Es gibt in FireBird Datumsfunktionen, entweder als UDF oder in neueren Versionen direkt.
SQL-Code:
Select DateAdd( <month, <Monate>, <Datumsfeld>) ... from <tabelle> ...;
|
Re: Datum autom. ausrechnen
Das ist natürlich noch besser, war mir komplett entfallen.
|
Re: Datum autom. ausrechnen
Zitat:
Im Ernst. "geht nicht" ist keine besonder geeignete Fehlerbeschreibung wenn man Hilfe erwartet. Welcher Fehler wird dir denn angezeigt oder was soll passieren und was passiert tatsächlich? |
Re: Datum autom. ausrechnen
Zitat:
Werde aber die obigen Vorschläge versuchen. Die Funktion
SQL-Code:
sieht sehr interessat aus. Werde das mal ein wenig anschauen.
Select DateAdd( <month, <Monate>, <Datumsfeld>) ... from <tabelle> ...;
Besten Dank schon mal. Shalom Manfred |
Re: Datum autom. ausrechnen
Danke Euch allen für die Hilfe. :thumb:
Momentan habe ich es so gelöst:
Delphi-Quellcode:
@mkinzler Die Lösung von Dir finde ich sehr elegant und werde diese auch noch Testen.
FieldByName('NC').AsDateTime := IncMonth(maxdate, +(FieldByName('CS').Value));
Besten dank nochmals für Eure schnelle Hilfe ! :dp: Shalom Manfred |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 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