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.
Delphi-Quellcode:
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;
habt Ihr mir einen Tipp?
Manfred