du meinst so:
updPersonal.ParamByName('MUTDATUM').AsDateTime:=now;
wollte ich ursprünglich wie gesagt so machen. Funktioniert aber nicht. Fehlermeldung:
Exception der Klasse EDatabaseError mit der Meldung 'Fehlender Wert für Parameter 'MUTDATUM' aufgetreten. Darum der Handstand mit der Datumsformatierung.
Die
Query wird so gefüllt:
Delphi-Quellcode:
// Update Query mit Statement versehen
queryfuellen(updPersonal,'
SQL_UPDATE_PERSONAL_DIVERSE.dat','
MAD_PERSONAL');
wobei queryfuellen eine Funktion von mir ist:
Delphi-Quellcode:
procedure QueryFuellen(
var queryname: TSQLQuery; prgpath, dateiname, tabellenname :
string);
var str:TStringList;
begin
// SQL Statement einlesen (SQL Strings)
if fileexists(prgpath+dateiname)
then
begin
str:=TStringList.Create;
// eingebaut aufgrund von Problemen in Delphi 2007 (direkt loadfromfile verwenden hat nicht mehr funktioniert)
str.LoadFromFile(prgpath+dateiname);
// 21.05.2008 nsa
queryname.SQL.Text:=str.text;
str.free;
//TQuery(FindComponent(queryname)).SQL.Text
end else
begin
Application.Messagebox(pchar(tabellenname+'
: SQL Datei: '+prgpath+dateiname+'
nicht gefunden!'),pchar('
FEHLER'),MB_OK
or MB_ICONWARNING);
end;
end;
Glaube zwar nicht, dass das weiterhilft. Es ist ein normales befüllen mit einem
SQL Statement bei welchem dann die Parameter einzeln zugewiesen werden. Das funktioniert ja auch bei allen anderen Feldern nur bei diesen ERSTELLDATUM und MUTDATUM Feldern, welche in Interbase als DATE Felder definiert sind (Datum und Zeit) nicht mehr.
Wie gesagt vorher in Delphi 7 hat alles gefunzt ohne Codeänderung!
Zitat von
RavenIV:
Was willst Du eigentlich mit der Datumsformatierung erreichen?
Now ist vom Typ TDateTime und das kann man natürlich mit AsDateTime zuweisen.
Und Du MUSST AsDateTime verwenden, wenn Du Datum und zeit haben willst.
Ich tippe eher, dass das
DB-Feld nur ein Time-Feld ist und nicht DateTime.
Ein Bisschen mehr Code wäre auch nicht schlecht.
z.B. das, wo Du das
Query zusammenbaust.