Lazarus 2.0.10 (2020.07.11.)
Letöltés

file Access 2010 adattípusok és előjeles konvertálás

  • Hozso
  • Hozso profilkép
  • Új fórumozó
  • Új fórumozó
  • Hozzászólások: 13
  • Köszönetek: 0

Hozso létrehozta a témát: Access 2010 adattípusok és előjeles konvertálás

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?
#2143