Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Problem mit Variants und YearOf Funktion (https://www.delphipraxis.net/155726-problem-mit-variants-und-yearof-funktion.html)

Ascuriah 5. Nov 2010 10:09


Problem mit Variants und YearOf Funktion
 
Moin Moin DP`ler

Ich habe folgendes Problem. Ich habe eine Tabelle in der es eine Spalte mit Datum und (noch leere) Spalten Jahr, Monat, Woche usw...

Delphi-Quellcode:
buchdat := qryFibu.FieldByName('KBU_Buchungsdatum').Value;

datum := VarToDateTime(buchdat);

jahr := YearOf(datum);
1. Ich komme nicht drum rum das die variable buchdat vom typ variant ist.
2. Dann wandel ich den variant in ein DateTime um (um die Funktionen der DateUtils zu nutzen)
3. Jahr ist vom typ variant und YearOf(datum) liefert mir ja word zurück, klar das das so irgendwie ned gehen kann aber wie bekomm ich den word in mein variant, bzw geht das überhaupt?

Alternativ habe ich das ganze (für Jahr) nun so gelöst:
Delphi-Quellcode:
jahr    := RightStr(buchdat, 4);   // die letzten 4 Stellen des Datums ergeben das Jahr
Meinen Leuten wärs aber wesentlich lieber es über die DateUtils zu lösen, wenn jemand also nen Tipp hat wär das super.

mfg

Ascu


PS: Sollte das der Falsche Forums-Bereich sein bitte ich um verschieben war mir ned sicher wo ich damit nun hingehör;)

mkinzler 5. Nov 2010 10:29

AW: Problem mit Variants und YearOf Funktion
 
Delphi-Quellcode:
datum := qryFibu.FieldByName('KBU_Buchungsdatum').asDateTime;

Ascuriah 5. Nov 2010 11:01

AW: Problem mit Variants und YearOf Funktion
 
Hm das is zwar richtig aber erklärt ned das Problem , datum is bei mir ja auch ein datetime aber wie bekomm ich das ergebnis von YearOf(liefert word) in ein Variant.

mkinzler 5. Nov 2010 11:03

AW: Problem mit Variants und YearOf Funktion
 
Delphi-Quellcode:
<Variant> := YearOf( <datum>);

Ascuriah 5. Nov 2010 11:26

AW: Problem mit Variants und YearOf Funktion
 
Also mit

Delphi-Quellcode:
datum      := qryFibu.FieldByName('KBU_Buchungsdatum').asDateTime;
jahr     := YearOf(datum);
so wie du es beschrieben hast, klappts ned kommt folgender Fehler:

Code:
Erste Gelegenheit für Exception bei $75C69617. Exception-Klasse EADSDatabaseError mit Meldung 'Error 7200: AQE Error: State = 42000;  NativeError = 2115; [iAnywhere Solutions][Advantage SQL Engine]Expected lexical element not found: identifier or expression -- Location of error in the SQL statement is: 378 (line: 6 column: 26) There was a problem parsing the value list in the INSERT INTO statement.'. Prozess OlapUI.exe (1764)
Liegt wohl daran das der Rückgabe Parameter vom typ word is und das jahr vom typ variant, verträgt sich wohl ned naja lös ichs anders

Bummi 5. Nov 2010 11:31

AW: Problem mit Variants und YearOf Funktion
 
mhhhhhh...
wo ist der Zusammenhang mit dem bestehen Thread?

EADSDatabaseError

mkinzler 5. Nov 2010 11:33

AW: Problem mit Variants und YearOf Funktion
 
Es scheint eher ein Problem mit dem Statement zu geben


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 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