Wij proberen, voor een evt. roll back, een SQL Server te laten repliceren met een Acc97 bestand.
Dit hebben we gedaan:
Dit hebben we kunnen opvangen, maar als je nu in de acc97 mdb kijkt, zie je dat alle currencies vermenigvuldigd zijn met 10000. Dat gaat dus niet goed, ongeacht onze workaround om de nul-waarden op te vangen.
€ 7,10 wordt dus € 71.000
Nu weten we van deze site dat "[the] DBMONEY datatype [...] is a structure containing 2 long INTs", en "The internal storage of the DBMONEY datatype keeps track of 1/100 of a cent, which equates to .0001 of a dollar".
Dat geeft wel ongeveer een reden aan waarom het bedrag 10.000 keer te groot is.
Wat blijkt, is dat in een DTS, bij de ActiveX code van een Data Driven Query Task aanpassen, de DTSSource("bedrag")-waarde al te groot is. Dus door 10.000 delen lost het in principe op.
Maar dat is wel een heel vieze workaround die we gewoon niet willen hebben. Ducttape-method zeg maar
Iemand een clue waardoor dit komt? En een hint/oplossing?
Dit hebben we gedaan:
- Een Linked Server aangemaakt voor de .mdb
- Een publicatie aangemaakt voor de SQL database
- Een nieuwe subscription toegevoegd
- Een DTS-package gemaakt voor transformatie van SQL naar Access (die is nodig, verhaal apart
)
Dit hebben we kunnen opvangen, maar als je nu in de acc97 mdb kijkt, zie je dat alle currencies vermenigvuldigd zijn met 10000. Dat gaat dus niet goed, ongeacht onze workaround om de nul-waarden op te vangen.
€ 7,10 wordt dus € 71.000
Nu weten we van deze site dat "[the] DBMONEY datatype [...] is a structure containing 2 long INTs", en "The internal storage of the DBMONEY datatype keeps track of 1/100 of a cent, which equates to .0001 of a dollar".
Dat geeft wel ongeveer een reden aan waarom het bedrag 10.000 keer te groot is.
Wat blijkt, is dat in een DTS, bij de ActiveX code van een Data Driven Query Task aanpassen, de DTSSource("bedrag")-waarde al te groot is. Dus door 10.000 delen lost het in principe op.
Maar dat is wel een heel vieze workaround die we gewoon niet willen hebben. Ducttape-method zeg maar
Iemand een clue waardoor dit komt? En een hint/oplossing?
Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.