Avatar billede el_fredo Praktikant
12. juni 2003 - 22:35 Der er 4 kommentarer og
2 løsninger

long vs. double

Jeg bruger C# som programmeringssprog. Så skulle det være på plads...

Jeg har problemer med at lagre en tal (long - 64 bit) i min database. Jeg har sat feltet til at være Long Integer, men det fungerer ikke. Sjovt nok, kan jeg godt få lov til at lagre en long i databasen, hvis feltet er sat som double. Det er imidlertid noget **** da jeg så mister nogle vigtige decimaler... Er det fordi, at Access's Long Integer kun er 32 bit, eller hvad kan der være galt?
Avatar billede Slater Ekspert
12. juni 2003 - 22:38 #1
64 bit tal findes slet ikke på 32 bit platforme.

Men seriøst, hvad bruger du en 64 bit til? Unsigned kan der være 18.446.744.073.709.551.616 i den... det er pæææænt meget.

Og du siger du MISTER decimaler ved at lave en Long64 om til double? Det kan ikke passe, for der er ikke decimaler i en long, men der er i en double.
12. juni 2003 - 22:39 #2
Har du prøvet med datatypen Decimal?
12. juni 2003 - 22:41 #3
"Decimal" gemmer 12 bytes - dvs 10^38
12. juni 2003 - 22:42 #4
Sorry 10^28 i alm. access db.
Avatar billede el_fredo Praktikant
13. juni 2003 - 08:10 #5
Jeg kan ikke finde ud af, at gemme et DateTime objekt fra C# til access. Jeg er ikke helt sikker på formatet, men laver man en .ToString() på sit DateTime objekt er formatet "DD-MM-YYYY HH:MM:SS". Da jeg ikke kunne det, lavede jeg datoen om til et tal (millisekunder) ved at bruge DateTime objektets .ToFileTime() metode. Dette giver et tal som fx 126999063390000000. Dette kan ikke ligge i en int32. Lægger man det i en double skriver den 1,2699906E+17 eller sådan noget, og jeg mister de sidste betydende cifre, der afgør tidspunktet på dagen. Jeg ved godt, at jeg ikke mangler decimaler, da der ikke er decimaler i en long - jeg mente cifre.

Det er muligt at lave 64 bit tal på en 32 bit platform - om det så er simuleret ved jeg ikke, men processoren kan i hvert tilfælde ikke behandle dem i et hug. Problemet er stadig, at jeg ikke kan lægge et DateTime objekt ned i Access. Den Decimal du snakker om thomasjepsen, er det i Access eller C#?
13. juni 2003 - 08:17 #6
Decimal er en Access-datatype (sub-type til Number)

Jeg forstår ikke helt, hvorfor du ikke kan gemme i datoformatet!?
Access gemmer i præcis det format, som du beskrev (dd-mm-yy hh:mm:ss)
Jeg kender ikke de forskellige dato-funktioner i C#, men i Access har du bla. CVDate(strExpr).
Men normalt, når man forsøger at gemme en tekststreng (som ellers ligner en dato) så finder Access selv ud af at konvertere til det rette format.

Er det gennem ADO, at du forsøger at indsætte værdien?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester