SQL DATETIME

Alles zum SQL-Dialekt

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

SQL DATETIME

Beitrag von AUGE_OHR »

bei SQL man bekommt ja einen "YYYY-MM-DD HH:MM:SS" String beim Type DATETIME zurück.
nun könnte man den String zerlegen in dDate und cTime ... z.b. für Datums Berechnungen.

es gibt ja nun die Windows API Structur FILETIME welche mit ot4xb so funktioniert

Code: Alles auswählen

#include "ot4xb.ch"

proc main
local oft := FileTime64():New()
oft:now(.T. )   // use .T. to get local time instead of GTM
? oft:cTimeStamp
? oft:GetTimeStamp19()
? oft:_GetTimeStamp_("%04.4hu%02.2hu%02.2hu%02.2hu%02.2hu%02.2hu.%03.3hu")
? oft:_GetTimeStamp_("Year:%04.4hu Month:%02.2hu Day:%02.2hu Hour: %02.2hu Minute: %02.2hu Secconds: %02.2hu Milliseconds: %03.3hu")

inkey(0)
return
damit kann ich also auch direkt Datum / Time Berechungen (+/-) anstellen.
gruss by OHR
Jimmy
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax »

Danke, kann ich gut gebrauchen.
Gruß
Markus
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax »

Hallo Jimmy,

eben wollte ich Deinen Hinweis mit dem Datum verwenden. Bei mir geht das aber nicht (Win8.1 Xbase++ V2.0):

Ich komme genau bis zur Zeile 4:

Code: Alles auswählen

------------------------------------------------------------------------------
ERROR LOG of "C:\dev\DevSrc\Test2\sample.exe" Date: 10/04/2014 21:07:35

Xbase++ version     : Xbase++ (R) Version 2.00.554
Operating system    : Windows 8.1 06.03 Build 09600
------------------------------------------------------------------------------
oError:args         :
          -> VALTYPE: U VALUE: NIL
oError:canDefault   : N
oError:canRetry     : N
oError:canSubstitute: Y
oError:cargo        : NIL
oError:description  : Receiver of message is not an object.
oError:filename     : 
oError:genCode      :         38
oError:operation    : New
oError:osCode       :          0
oError:severity     :          2
oError:subCode      :       2266
oError:subSystem    : BASE
oError:thread       :          1
oError:tries        :          0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Called from MAIN(4)
Gruß
Markus
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: SQL DATETIME

Beitrag von georg »

Hallo, Markus -


#PRAGMA Library("OT4XB.LIB")

mal ausprobiert? Wobei es mich wundert, dass Du keine Compiler-Warnung für FileTime64 bekommen hast ...
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax »

Hab ich, steht aber schon im OT4XB.CH:

#ifndef _OT4XB_CH_
#define _OT4XB_CH_
#pragma library ("ot4xb.lib")
Gruß
Markus
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: SQL DATETIME

Beitrag von AUGE_OHR »

satmax hat geschrieben:Hab ich, steht aber schon im OT4XB.CH
hm ... welche Version von ot4xb hast du ?
gruss by OHR
Jimmy
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax »

Build 001.005.003.176
Gruß
Markus
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax »

War ein Fehler, ich habe V1.6.0.167
Gruß
Markus
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: SQL DATETIME

Beitrag von AUGE_OHR »

[quote"satmax"]Build 001.005.003.176[/quote]könnte sein das es damals nur FILETIME() hiess
satmax hat geschrieben:War ein Fehler, ich habe V1.6.0.167
damit sollte es funktionieren, oder ?
gruss by OHR
Jimmy
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax »

Nein, geht leider nicht, auch nicht auf meinem PC (beide Win 8.1/64).
Gruß
Markus
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax »

Jimmy, kannst Du mir bitte eine EXE mit Deinem obigen Code geben? Ich möchte nur mal sehen ob es damit geht. Zur Fehlereingrenzung, ich habe nämlich überhaupt keine Idee was da los ist...
Gruß
Markus
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: SQL DATETIME

Beitrag von brandelh »

bei solchen Sachen immer auf die FEHLERMELDUNG sehen:

Code: Alles auswählen

oError:args         :
          -> VALTYPE: U VALUE: NIL
...
Es handelt sich nur um EINE Variable, sonst wären hier mehr Zeilen !

Code: Alles auswählen

oError:description  : Receiver of message is not an object.
Es wurde versucht eine Methode auf ein Objekt anzuwenden (normalerweise reden wir von einem Objekt, das eine Methode ausführt,
aber intern sieht es genau anders herum aus.
Um welche Zeile handelt es sich genau ?
Ich zähle oben die 4. Zeile (Leerzeilen zählen mit) und sehe das:

Code: Alles auswählen

local oft := FileTime64():New()
hier sollte NEW auf ein Klassen-OBJECT der Klasse FileTime64() angewendet werden, das Ergebnis sollte dann an oft übergeben werden !
Die Verkettung von all dem in eine LOCAL Zeile ist zwar nett anzusehen, stört aber beim debuggen.
Ich würde den Quellcode in so einem Fall aufteilen und im Debugger ansehen (oder mit ? ausgeben):

Code: Alles auswählen

local oft, oK
oK := FileTime64() // Klassenobjekt erzeugen
if oK = NIL 
   ? "Fehler oK=NIL"
endif
oft := oK:New() // Eine Instanz (Objekt erzeugen)
if oft = NIL 
   ? "Fehler oft = NIL"
endif
Ich tippe auf "Fehler oK=NIL" was bedeuten würde, dass die Funktion zwar vorhanden ist ...
sonst würde eine Fehlermeldung auf interne ot4xb Funktionen erscheinen (die kenne ich von HBPrintPDF) ...
entweder fehlen Rechte oder die Parameter haben sich geändert, Win 8.1 scheint sich auf jeden Fall anders zu verhalten.
Das sollte man Pablo fragen, wenn man alle anderen Fehler ausgeschlossen hat ;-)
Gruß
Hubert
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax »

Ja Hubert, du tippst richtig, "Fehler oK=NIL". Also via Newsgroup Pablo fragen?


Nachtrag: auch unter Windows 8 und Server 2008/R2 und Server 2012 gleiches Problem. Aber alle 64 Bit.
Gruß
Markus
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: SQL DATETIME

Beitrag von brandelh »

Ich kann aktuell nur unter Windows 7 testen und da geht es auch unter 64 bit.
Notfalls kann man aber auch unter der MSDN nach FileTime64 suchen ;-)
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: SQL DATETIME

Beitrag von brandelh »

es heißt nur FileTime ... und da steht nichts von Problemen ...

:arrow: http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Gruß
Hubert
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax »

Ich würde mal gerne eine EXE von Dir testen, eventuell habe ich ja ein Problem mit der LIB, DLL,... Habe zwar alles schon doppelt und dreifach gecheckt, aber...

Außerdem überlege ich gerade mir eine eigene Klasse zu schreiben.
Gruß
Markus
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: SQL DATETIME

Beitrag von brandelh »

es liegt nicht an Windows 8, sondern an Xbase 2.00 !
Wenn ich das Programm mit SL1 kompiliere funktioniert es, mit 2.00 kommt deine Fehlermeldung auch unter Win 7

Code: Alles auswählen

------------------------------------------------------------------------------
ERROR LOG of "D:\HB_XBASE\Test\FileTime64\TEST.EXE" Date: 10/07/2014 13:10:32

Xbase++ version     : Xbase++ (R) Version 2.00.547
Operating system    : Windows 7 06.01 Build 07601 Service Pack 1
------------------------------------------------------------------------------
oError:args         :
          -> VALTYPE: U VALUE: NIL
oError:canDefault   : N
oError:canRetry     : N
oError:canSubstitute: Y
oError:cargo        : NIL
oError:description  : Receiver of message is not an object.
oError:filename     : 
oError:genCode      :         38
oError:operation    : New
oError:osCode       :          0
oError:severity     :          2
oError:subCode      :       2266
oError:subSystem    : BASE
oError:thread       :          1
oError:tries        :          0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Called from MAIN(8)
Gruß
Hubert
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax »

Danke, meldest Du das an Alaska oder soll es ich tun?
Gruß
Markus
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: SQL DATETIME

Beitrag von brandelh »

Ich habe es in Pablos Forum gepostet, Alaska hat ja keinen Quellcode ;-)
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: SQL DATETIME

Beitrag von AUGE_OHR »

brandelh hat geschrieben:es liegt nicht an Windows 8, sondern an Xbase 2.00 !
hm ... mit der v2.0.519 (beta5) läuft es unter Win7 32bit.
Es wäre ja ein Witz wenn es mit der Xbase++ Release v2.x Version nicht mehr läuft :badgrin:
gruss by OHR
Jimmy
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax »

Auch SQLExpress ging bis v2.0.519, danach benötigte man ein Update.
Gruß
Markus
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: SQL DATETIME

Beitrag von AUGE_OHR »

satmax hat geschrieben:Auch SQLExpress ging bis v2.0.519, danach benötigte man ein Update.
na ja bei SQLexpress wird ja auch noch Xbase++ benutzt dir in der erzeugten DLL / LIB steht "This_DLL_needs_version_1_90_0" welche nicht mit der v2.x läuft.
bei ot4xb handelt es sich ja um reine API Function die mit jeder Windows Version laufen sollte, also ist Xbase++ v2.x das Problem
wie schon gesagt läuft es bei der beta5 Version noch unter Win7 32bit und Win8.1 64bit.
gruss by OHR
Jimmy
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax »

Hallo Jimmy,

Du hast es sicher schon gelesen, aber der Vollständigkeit halber auch hier im Forum, Alaska hat geantwortet:

==============================
Bitte nehmen Sie mit Pablo Botella Verbindung auf. Ich denke das ein
Rebuild der Bibliothek erforderlich ist.

Mit Xbase++ 2.0 haben wir das interne Typen Management überarbeitet,
das bedingt ein neues Bauen aller Bibliotheken die unter Verwendung
der C-API in C/C++ gebaut wurden.

Es ist dann auch die geänderte Dokumentation der C-API zu beachten, die
beschreibt, wie auf Xbase++ Typen hin zu prüfen. ist.

==============================
Gruß
Markus
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: SQL DATETIME

Beitrag von AUGE_OHR »

satmax hat geschrieben:Du hast es sicher schon gelesen, aber der Vollständigkeit halber auch hier im Forum, Alaska hat geantwortet:
mit der Beta5 hat es funktioniert und bei RC1 war Schluss ... glaubst du wirklich das Alaska in der Phase was geändert hat ( ausser die "Aktivierung" ) ?
gruss by OHR
Jimmy
Antworten