AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Einen SqlTimeStamp in einen String umwandeln
Thema durchsuchen
Ansicht
Themen-Optionen

Einen SqlTimeStamp in einen String umwandeln

Ein Thema von Mayday171 · begonnen am 16. Mai 2006 · letzter Beitrag vom 17. Mai 2006
Antwort Antwort
Seite 1 von 2  1 2      
Mayday171

Registriert seit: 19. Apr 2006
40 Beiträge
 
#1

Einen SqlTimeStamp in einen String umwandeln

  Alt 16. Mai 2006, 15:34
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.

zquery1.SQL.Add('REPLACE INTO berichte (name,durchlauf,status,produktnummer,zeit) VALUES ("'+name+'",'+durchlauf+',"'+status+'",'+produktnummer+','+sqlzeit+')'); 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.

Was soll ich tun???

DANKE SCHON MAL

MFG
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Einen SqlTimeStamp in einen String umwandeln

  Alt 16. Mai 2006, 15:43
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.
Markus Kinzler
  Mit Zitat antworten Zitat
Mayday171

Registriert seit: 19. Apr 2006
40 Beiträge
 
#3

Re: Einen SqlTimeStamp in einen String umwandeln

  Alt 16. Mai 2006, 15:52
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Einen SqlTimeStamp in einen String umwandeln

  Alt 16. Mai 2006, 15:55
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');
Markus Kinzler
  Mit Zitat antworten Zitat
Mayday171

Registriert seit: 19. Apr 2006
40 Beiträge
 
#5

Re: Einen SqlTimeStamp in einen String umwandeln

  Alt 17. Mai 2006, 07:21
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Einen SqlTimeStamp in einen String umwandeln

  Alt 17. Mai 2006, 07:23
Du baruchst die Parameter nicht pewr Hand definieren, diese werden automatisch anhand der Abfrage erzeugt. Hast du die Parameter genauso wie im Abfragestring geschrieben?
Markus Kinzler
  Mit Zitat antworten Zitat
Mayday171

Registriert seit: 19. Apr 2006
40 Beiträge
 
#7

Re: Einen SqlTimeStamp in einen String umwandeln

  Alt 17. Mai 2006, 07:38
Es stimmt alles so wie es soll...

Delphi-Quellcode:
//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;
Er sagt mir immer das parameter 'xyz' nicht existiert.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Einen SqlTimeStamp in einen String umwandeln

  Alt 17. Mai 2006, 07:42
Du mußt die Zuweisung der SQL-Abfrage natürlich vor der Belegung der Parameter machen.
Markus Kinzler
  Mit Zitat antworten Zitat
Mayday171

Registriert seit: 19. Apr 2006
40 Beiträge
 
#9

Re: Einen SqlTimeStamp in einen String umwandeln

  Alt 17. Mai 2006, 07:53
jetzt gibt er mir Fehler bei Bereichsprüfung aus...
Muss ich doch vieleicht den Typ vorher definieren?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Einen SqlTimeStamp in einen String umwandeln

  Alt 17. Mai 2006, 07:55
Welchen Typ?
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz