![]() |
Einen SqlTimeStamp in einen String umwandeln
Hallo!
Ich versuche verzweifelt einen SQLTimeStamp in einen String umzuwandeln. Als erstes hol ich mir FileAge('irgendeine Datei') und das wandel ich dann in datetime um und das wiederrum in SQLTimeStamp. Nun möchte ich diesen SQLTimeStamp in einer SQL Datenbank hinterlegen. Ich benutze die Zeos Komponenten um die Query auszuführen und da wird ein String verlangt, z.B.
Delphi-Quellcode:
sqlzeit ist in diesen Beispiel TSQLTimeStamp. Sobald ich diesen Code ausführe gibt er mir aus, dass String und TSQLTimeStamp inkompatible Typen sind, d.h das die Methode Strings als Eigenschaft erwartet.
zquery1.SQL.Add('REPLACE INTO berichte (name,durchlauf,status,produktnummer,zeit) VALUES ("'+name+'",'+durchlauf+',"'+status+'",'+produktnummer+','+sqlzeit+')');
Was soll ich tun??? DANKE SCHON MAL MFG |
Re: Einen SqlTimeStamp in einen String umwandeln
Die Idee einen system/locale-unabhängigen Wert in einen String mit abhängeigen Wert umzuwandeln ist nicht gut. Verwende doch mal eine parametrisierte Abfrage, der du den DateTime direkt übergeben kannst.
|
Re: Einen SqlTimeStamp in einen String umwandeln
Das mit den Parametern in SQL querys hab ich noch nie verstanden. Weiß auch nicht wie genau du das meinst. Kannst du mir mal ein Beispiel erstellen bzw. erläutern.
THX |
Re: Einen SqlTimeStamp in einen String umwandeln
Delphi-Quellcode:
zquery1.SQL.Test := 'REPLACE INTO berichte (name,durchlauf,status,produktnummer,zeit) VALUES ( :name, :durchlauf, :status, :produktnummer, :zeit)';
zquery1.ParamByName('name').value := name; zquery1.ParamByName('durchlauf').value := durchlauf; ... zquery1.ParamByName('zeit').value := FileAge('irgendeine Datei'); |
Re: Einen SqlTimeStamp in einen String umwandeln
Hab immer noch so meine Probleme mit den Parametern. Hab soweit den Code so umgeschrieben das es mit PArametern funktionieren sollte. Er gibt mir nur beim starten die Fehlermeldung raus, dass Parameter 'irgendwas' ind ZQuery1 nicht existieren soll.
Ich habe den Parameter und Eigenschaften der zquery definiert und kommt immer noch die selbe Fehlermedung. Was mache ich falsch=??? MfG |
Re: Einen SqlTimeStamp in einen String umwandeln
Du baruchst die Parameter nicht pewr Hand definieren, diese werden automatisch anhand der Abfrage erzeugt. Hast du die Parameter genauso wie im Abfragestring geschrieben?
|
Re: Einen SqlTimeStamp in einen String umwandeln
Es stimmt alles so wie es soll...
Delphi-Quellcode:
Er sagt mir immer das parameter 'xyz' nicht existiert.
//DEFAULTWERTE //
zquery1.ParamByName('name').Value:='N/A'; zquery1.ParamByName('durchlauf').Value:=0; zquery1.ParamByName('status').Value:='N/A'; zquery1.ParamByName('produktnummer').Value:='0'; if (cutrev(tempstring,'_')='ERROR') or (cutrev(tempstring,'_')='OK') then begin zquery1.ParamByName('status').value:=cutrev(tempstring,'_'); //showmessage('status='+(cutrev(tempstring,'_'))); tempstring:=cut(tempstring,'_'); end; if ((length(cutrev(tempstring,'_'))=1) or (length(cutrev(tempstring,'_'))=2)) and (length(cutrev(tempstring,'_'))<>0) then begin zquery1.ParamByName('durchlauf').value:=cutrev(tempstring,'_'); //showmessage('durchlauf='+(cutrev(tempstring,'_'))); tempstring:=cut(tempstring,'_'); end; if (cutrev(tempstring,'_')='') xor not(strisalpha(cutrev(tempstring,'_'))) then begin zquery1.ParamByName('produktnummer').value:=cutrev(tempstring,'_'); //showmessage('Produktnummer='+(cutrev(tempstring,'_'))); tempstring:=cut(tempstring,'_'); end; if tempstring<>'' then begin if tempstring[length(tempstring)]='_' then begin setlength(tempstring,length(tempstring)-1); end; zquery1.ParamByName('name').value:=tempstring; //showmessage('name='+tempstring); end; zquery1.SQL.Add('INSERT INTO berichte (name,durchlauf,status,produktnummer) VALUES ( :name, :durchlauf, :status, :produktnummer)'); zquery1.ExecSQL; zquery1.SQL.Clear; |
Re: Einen SqlTimeStamp in einen String umwandeln
Du mußt die Zuweisung der SQL-Abfrage natürlich vor der Belegung der Parameter machen.
|
Re: Einen SqlTimeStamp in einen String umwandeln
jetzt gibt er mir Fehler bei Bereichsprüfung aus...
Muss ich doch vieleicht den Typ vorher definieren? |
Re: Einen SqlTimeStamp in einen String umwandeln
Welchen Typ?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:24 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