Lazarus 2.0.12 (2021.02.21.)
Letöltés

  • Oldal:
  • 1

TÉMA:

Access 2010 adattípusok és előjeles konvertálás 2017 jan. 10 15:38 #2143

  • Hozso
  • Hozso profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 17
  • Köszönetek: 0
Adatbázisba (Access 2010) mentendő adataim között vannak 16 bites, előjel nélküli egész számok. Ha 2 byte-os adattípust választok ki az Access-ben (integer), akkor mindenképpen előjelesen értelmezi, ugye? Tehát ha van olyan számom (van bizony sok), amit 0 - 65535 tartományban kell értelmezni, akkor azt mindenéppen 4 byte-os formában (LongInteger vagy Single-Float) kell tárolnom?

Ha így van, akkor melyiket válasszam? (Ha úgyis 4 byte kell neki, akkor nekem aztán mindegy, hogy melyiket állítom be. Adatkezelésben, mentésben stb. van-e különbség közöttük, melyiket érdemes választani?)


Másik kérdés: ha nem egész számokat szeretnék kiszámolni, tizedes törtként, előjelesen. Hogyan tudom a legegyszerűbben, leggyorsabban megoldani? (Mármint a CPU számára leggyorsabban végrehatjhatóan gondolom.) Az adatok mind byte-osan állnak rendelkezésre. Két byte ad meg ugye egy értéket. Most így csinálom:

SQLQuery.ParamByName('m1').AsFloat := (bBufMSBRec_2Array[iI,0]*256 + bBufMSBRec_2Array[iI,1]) / 10;

Ez odáig jó, hogy 0.1 pontosságú lesz az eredmény, de előjelet ezzel nem kapok. Hogyan tudom megoldani, hogy előjeles legyen az eredmény?

  • Oldal:
  • 1