+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

Datum in LL15


(Guest) #1

Hallo,
bei mir erscheinen alle Datumswerte in allen LL15-Listen falsch (01.01.-4713)!
der gleichen Programmcode funktioniert in LL14 ohne Probleme. Für die Übergabe an LL benutze ich folgendes:

Case “System.DateTime”.ToUpper
strParam = LlFieldType.Date_Localized
strContent = CDate(MyDataReader.Item(i)).ToShortDateString

LL.Core.LlDefineFieldExt(MyDataReader.GetName(i), strContent, strParam)

Das Feld in der SQL-Datenbank ist als “datetime” definiert. Beim Debugen erhalte ich strContent mit richtigem Wert z.B. “03.11.2009 14:28:00”

ich habe bereits folgendes getestet:
strParam = LlFieldType.Date
und
strParam = LlFieldType.Date_MS
und
strParam = LlFieldType.Date_OLE
jeweils ohne Erfolg. Ich benutze VB2008 mit .NET 3.5, LL15 SP01, SQL2008/2005

Für jegliche Hilfe (Beispiele) bin ich euch sehr dankbar.

Gruss
Fardin


(Guest) #2

Das Datum wird falsch übergeben. Wenn Du’s so machst wie beschrieben
könnte LL_DATE_LOCALIZED funktionieren. Besser wäre es aber, es als
OLE Date (d.h. Zahl der Tage ab dem 31.12.1899) oder direkt als
julianischen Wert (Zahl der Tage ab dem 1.1.-4716) zu übergeben.

Wenn’s bei LL14 klappte, halte ich das für Glückssache.

Paulchen

“Fardin Asghari” <f.asghari@sputnik-i…> wrote in message
news:9390124200917308@combit.net

Hallo,
bei mir erscheinen alle Datumswerte in allen LL15-Listen falsch
(01.01.-4713)!
der gleichen Programmcode funktioniert in LL14 ohne Probleme. Für
die Übergabe an LL benutze ich folgendes:

Case “System.DateTime”.ToUpper
strParam = LlFieldType.Date_Localized
strContent = CDate(MyDataReader.Item(i)).ToShortDateString

LL.Core.LlDefineFieldExt(MyDataReader.GetName(i), strContent,
strParam)

Das Feld in der SQL-Datenbank ist als “datetime” definiert. Beim
Debugen erhalte ich strContent mit richtigem Wert z.B. “03.11.2009
14:28:00”

ich habe bereits folgendes getestet:
strParam = LlFieldType.Date
und
strParam = LlFieldType.Date_MS
und
strParam = LlFieldType.Date_OLE
jeweils ohne Erfolg. Ich benutze VB2008 mit .NET 3.5, LL15 SP01,
SQL2008/2005

Für jegliche Hilfe (Beispiele) bin ich euch sehr dankbar.

Gruss
Fardin


(Guest) #3

Hallo Paul,
danke für deine Antwort.
Sorry, leider versteh ich nicht ganz:
wenn ich es so schreibe, dann erhalte ich “04.11.-4604” für “2009-11-03 14:28:00.000”
strParam = LlFieldType.Date_Localized
strContent = CDate(MyDataReader.Item(i).ToString).ToShortDateString
wenn ich es so schreibe, dann erhalte ich “04.01.-4713” für “2009-11-03 14:28:00.000”
strParam = LlFieldType.Date
strContent = CDate(MyDataReader.Item(i).ToString).ToShortDateString
wenn ich es so schreibe, dann erhalte ich “02.01.1900” für “2009-11-03 14:28:00.000”
strParam = LlFieldType.Date_OLE (und auch bei Date_MS)
strContent = CDate(MyDataReader.Item(i).ToString).ToShortDateString
wenn ich es so schreibe, dann erhalte ich “03.11.2009” für “2009-11-03 14:28:00.000”
strParam = LlFieldType.Date_DMY
strContent = CDate(MyDataReader.Item(i).ToString).ToShortDateString

mein strContent hat immer die richtige Werte. Wenn es bei LL13, LL14 so funktionierte. Wie kann ich es nun lösen.
Für jede Hilfe bin ich sehr dankbar.

Gruss
Fardin

Das Datum wird falsch übergeben. Wenn Du’s so machst wie beschrieben
könnte LL_DATE_LOCALIZED funktionieren. Besser wäre es aber, es als
OLE Date (d.h. Zahl der Tage ab dem 31.12.1899) oder direkt als
julianischen Wert (Zahl der Tage ab dem 1.1.-4716) zu übergeben.

Wenn’s bei LL14 klappte, halte ich das für Glückssache.

Paulchen

“Fardin Asghari” <f.asghari@sputnik-i…> wrote in message
news:9390124200917308@combit.net

Hallo,
bei mir erscheinen alle Datumswerte in allen LL15-Listen falsch
(01.01.-4713)!
der gleichen Programmcode funktioniert in LL14 ohne Probleme. Für
die Übergabe an LL benutze ich folgendes:

Case “System.DateTime”.ToUpper
strParam = LlFieldType.Date_Localized
strContent = CDate(MyDataReader.Item(i)).ToShortDateString

LL.Core.LlDefineFieldExt(MyDataReader.GetName(i), strContent,
strParam)

Das Feld in der SQL-Datenbank ist als “datetime” definiert. Beim
Debugen erhalte ich strContent mit richtigem Wert z.B. “03.11.2009
14:28:00”

ich habe bereits folgendes getestet:
strParam = LlFieldType.Date
und
strParam = LlFieldType.Date_MS
und
strParam = LlFieldType.Date_OLE
jeweils ohne Erfolg. Ich benutze VB2008 mit .NET 3.5, LL15 SP01,
SQL2008/2005

Für jegliche Hilfe (Beispiele) bin ich euch sehr dankbar.

Gruss
Fardin


(Guest) #4

Mich wundert eher, daß das mal funktioniert hat :wink:

wenn ich es so schreibe, dann erhalte ich “03.11.2009” für
“2009-11-03 14:28:00.000”
strParam = LlFieldType.Date_DMY
strContent = CDate(MyDataReader.(i).ToString).ToShortDateString

Na das ist doch OK, oder? Aber das klappt nur in Deutschland, denn nur
hier ist es “t.m.j”-formatiert. In den USA würde Dein Programm nicht
funktionieren.

Drei Tips:

  • wenn Du hier gute Hilfe willst, schau mal ins Debug-Log - da wirst
    Du sehen, daß Du niemals “2009-11-03 14:28:00.000” übergibst, sondern
    “03.11.2009”.

  • warum CDate(MyDataReader.(i).ToString).ToShortDateString, wenn
    MyDataReader.GetDateTime(i).ToShortDateString() nicht einfacher wäre?

  • übergib Datums/Zeitwerte nicht als formatierten String, sonst ist es
    Glückssache (bzw. braucht tiefe Einblicke in die internationale
    Datumsformatierung), ob das funktioniert. Übergib das Datum als
    Integer- oder (wenn die Zeit dabei ist) Double-Wert, und dann gib den
    Offset des Datums an (LL_DATE, LL_DATE_OLE, …). Also z.B.
    MyDatareader.GetDateTime(i).ToOADate().ToString() und LL_DATE_OLE.

Warum machst Du nicht direkt
LL.Variables.Add(“MeinDatum”,MyDataReader.GetDateTime(i))? Das ist
viiiiiiiiel besser, das macht Dir keine Arbeit ;-)))

Paulchen


(Guest) #5

Hallo Paul,
Besten herzlichen Dank. Es funktioniert wurnderbar. Wünsche allen einen schönen Tag.

Gruss
Fardin

Mich wundert eher, daß das mal funktioniert hat :wink:

wenn ich es so schreibe, dann erhalte ich “03.11.2009” für
“2009-11-03 14:28:00.000”
strParam = LlFieldType.Date_DMY
strContent = CDate(MyDataReader.(i).ToString).ToShortDateString

Na das ist doch OK, oder? Aber das klappt nur in Deutschland, denn nur
hier ist es “t.m.j”-formatiert. In den USA würde Dein Programm nicht
funktionieren.

Drei Tips:

  • wenn Du hier gute Hilfe willst, schau mal ins Debug-Log - da wirst
    Du sehen, daß Du niemals “2009-11-03 14:28:00.000” übergibst, sondern
    “03.11.2009”.

  • warum CDate(MyDataReader.(i).ToString).ToShortDateString, wenn
    MyDataReader.GetDateTime(i).ToShortDateString() nicht einfacher wäre?

  • übergib Datums/Zeitwerte nicht als formatierten String, sonst ist es
    Glückssache (bzw. braucht tiefe Einblicke in die internationale
    Datumsformatierung), ob das funktioniert. Übergib das Datum als
    Integer- oder (wenn die Zeit dabei ist) Double-Wert, und dann gib den
    Offset des Datums an (LL_DATE, LL_DATE_OLE, …). Also z.B.
    MyDatareader.GetDateTime(i).ToOADate().ToString() und LL_DATE_OLE.

Warum machst Du nicht direkt
LL.Variables.Add(“MeinDatum”,MyDataReader.GetDateTime(i))? Das ist
viiiiiiiiel besser, das macht Dir keine Arbeit ;-)))

Paulchen