Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

SQL DATETIME

Alles zum PostgreSQL-Server

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10571
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

SQL DATETIME

Beitrag von AUGE_OHR » Do, 25. Sep 2014 8:02

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: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax » Fr, 26. Sep 2014 7:15

Danke, kann ich gut gebrauchen.
Gruß
Markus

Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax » Sa, 04. Okt 2014 21:12

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: 1933
Registriert: Fr, 08. Feb 2008 21:29

Re: SQL DATETIME

Beitrag von georg » Sa, 04. Okt 2014 21:50

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

Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax » Sa, 04. Okt 2014 21:53

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: 10571
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: SQL DATETIME

Beitrag von AUGE_OHR » Sa, 04. Okt 2014 23:26

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: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax » Sa, 04. Okt 2014 23:30

Build 001.005.003.176
Gruß
Markus

Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax » Sa, 04. Okt 2014 23:34

War ein Fehler, ich habe V1.6.0.167
Gruß
Markus

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10571
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: SQL DATETIME

Beitrag von AUGE_OHR » So, 05. Okt 2014 2:06

[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: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax » Mo, 06. Okt 2014 7:27

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: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax » Di, 07. Okt 2014 7:44

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: 13765
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: SQL DATETIME

Beitrag von brandelh » Di, 07. Okt 2014 10:48

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: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax » Di, 07. Okt 2014 11:30

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: 13765
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: SQL DATETIME

Beitrag von brandelh » Di, 07. Okt 2014 12:43

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: 13765
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: SQL DATETIME

Beitrag von brandelh » Di, 07. Okt 2014 12:45

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: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax » Di, 07. Okt 2014 12:52

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: 13765
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: SQL DATETIME

Beitrag von brandelh » Di, 07. Okt 2014 13:13

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: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax » Di, 07. Okt 2014 13:15

Danke, meldest Du das an Alaska oder soll es ich tun?
Gruß
Markus

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13765
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: SQL DATETIME

Beitrag von brandelh » Di, 07. Okt 2014 13:17

Ich habe es in Pablos Forum gepostet, Alaska hat ja keinen Quellcode ;-)
Gruß
Hubert

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10571
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: SQL DATETIME

Beitrag von AUGE_OHR » Di, 07. Okt 2014 17:57

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: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax » Di, 07. Okt 2014 19:49

Auch SQLExpress ging bis v2.0.519, danach benötigte man ein Update.
Gruß
Markus

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10571
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: SQL DATETIME

Beitrag von AUGE_OHR » Di, 07. Okt 2014 23:18

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: 779
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Kontaktdaten:

Re: SQL DATETIME

Beitrag von satmax » Mi, 08. Okt 2014 13:01

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: 10571
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: SQL DATETIME

Beitrag von AUGE_OHR » Do, 09. Okt 2014 1:01

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