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?