MSSQL DATETIME + Magic xpa 3.2 probléma

11 views
Skip to first unread message

Bakos Gyula

unread,
Jul 21, 2020, 6:20:24 AM7/21/20
to magic-...@googlegroups.com

Sziasztok,

 

A következő problémánk merült fel MSSQL adatbázissal kapcsolatban:

Van MSSQL-ben 2 DATETIME mezőnk, default date: 1901-01-01 00:00:00.

Magic xpa 3.2-ben egy dátum és egy idő mező néz ezekre a mezőkre, Part of datetime tulajdonság nincs beállítva.

Van egy egyszerű RIA karbantartó erre a táblára, gyakorlatilag Generált Browse programból is ugyanez a helyzet:

Ha egy rekordot módosítunk, akkor a következő hibaüzenetet kapjuk: „Record changed by another user”.

Gateway logot bekapcsolva látszik, hogy a hiba oka az, hogy az update-elni kívánt rekordra az update utasítás where feltételébe a Magic beleteszi az [AND (karido = {ts '2000-01-01 13:28:03.000'})] feltételt, holott a karido mezőben '1901-01-01 13:28:03.000' szerepel az mssql-ben.

Ha a Database Default értéket átírjuk 1901-01-01 00:00:00-ról 2000-01-01 00:00:00-ra, akkor megjavul a hiba. Ez is azt bizonyítja, hogy itt van valahol a probléma.

Kérdés: Honnan veszi a Magic ezt a 2000-01-01-et? Hogyan lehetne rávenni, hogy ne a 2000-01-01-et, hanem a database default-ban beállított 1901-01-01-et használja?

 

Találkozott már valaki ezzel a problémával?

Természetesen megoldás lenne, ha a Database default-ot minden dátum, idő mezőre átírnánk 2000-01-01-re, de ezt a táblák és mezők nagy száma miatt nem szeretnénk, másrészt jó lenne érteni is, hogy a Magic miért így dolgozik.

 

Üdv: Gyula

 

Tisch Dávid

unread,
Jul 22, 2020, 11:07:37 AM7/22/20
to magic-...@googlegroups.com

Szia Gyula!

MI 1.9-el használunk SQL Servert, és ott minden klafán működik, 1901-01-01-es default dátum értékkel, igaz, hogy az összetartozó dátum+idő mezőink dátum része DATETIME, az idő pedig egy külön char(6)-os mezőben csücsül. De ilyen 2000-01-01-es dátum problémával még nem találkoztunk. (A beállítások miatt küldök Neked egy minta Magic.ini-t úgy, ahogy mi használjuk.)

Üdvözlettel:

Dávid

Magic.ini.example

Tisch Dávid

unread,
Jul 22, 2020, 11:11:06 AM7/22/20
to magic-...@googlegroups.com

És még egy dolog: mivel az SQL Serverben DATETIME-ként létrejövő mező Magic oldalon igazából Date, ezért a default értéke nálunk '1901-01-01', idő rész nélkül.

2020. 07. 21. 12:20 keltezéssel, Bakos Gyula írta:
Reply all
Reply to author
Forward
0 new messages