Einzelnen Beitrag anzeigen

toyoman

Registriert seit: 2. Jun 2003
323 Beiträge
 
Delphi 2010 Enterprise
 
#6

Re: Probleme mit datetime und TSQLQuery

  Alt 16. Jun 2008, 14:27
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.
  Mit Zitat antworten Zitat