Projekat

Općenito

Profil

Akcije

Greške #27327

Zatvoren

server db_parametri - get_metric, fetch_metric - string parametri i naša slova

Dodano od Ernad Husremović prije oko 14 godina. Izmjenjeno prije oko 14 godina.

Status:
Zatvoreno
Prioritet:
Urgentno
Odgovorna osoba:
Saša Vranić
Početak:
30.03.2012
Završetak:
30.03.2012
% završeno:

100%

Procjena vremena:
Akcije #1

Izmjenjeno od Ernad Husremović prije oko 14 godina

uočavam 5-6 bugova i niz problema koje izaziva promjena parametara - prebacivanje na server db.

to se jedno po jedno fiksira ali to tako ne treba. To treba fiksirati u F18 core funkcijama)

u set_metric / fetch_metric treba te stvari fiksirati ... a ne na svakom djelu aplikativnog koda

Akcije #2

Izmjenjeno od Ernad Husremović prije oko 14 godina

aplikativni developer ne treba misliti o konverziji parametara.

principi

1) na sql serveru podaci MORAJU biti pohranjeni u utf formatu. utf je 2-bajt format za naša slova.

2) memorijske varijable u harbour-u (ono što se čita u @ GET, SAY ...) moraju biti pohranjene u OEM 852 formatu

što se za utf stringove dobija sa hb_utf2str( ...).

Ako se ova konverzija ne izvrši onda dobijamo u maski za unos podataka nešto kao "LoliXY" umjesto "Lolić" pri čemu su XY neki čudni znakovo - to korisnici prijavljuju kao smeće, hijeroglifi

Akcije #3

Izmjenjeno od Ernad Husremović prije oko 14 godina

šta uraditi

u aplikativnom kodu - kodu koji koristi fetch_metric set_metric treba izbaciti konverzije

u get_metric treba staviti konverziju

Akcije #4

Izmjenjeno od Ernad Husremović prije oko 14 godina

gledam fetch metric funkciju:

if _ret == "!!notfound!!" 
   // NOT FOUND metric, raise exception 
   return default_value 
else  
   return str_to_val(_ret, default_value) 
endif 

pod pretpostavkom da su na serveru podaci u utf-formatu (tako mora biti ako nije !)

treba dodati ovo

static function str_to_val(str_val, default_value)
local _val_type := VALTYPE(default_value)

do case
    case _val_type == "C" 
        return hb_Utf2Str(_val)  <<<<<<<<<<<<<< ili hb_Utf8ToStr ... kako već glasi ime fje <<<<<<<<<<<<<

    case _val_type == "N" 
...

tako će string varijabla kojim manipuliše GET/SYS uvijek imati OEM cp852.

Akcije #5

Izmjenjeno od Ernad Husremović prije oko 14 godina

  • Završetak postavljeno na 30.03.2012
  • Prioritet promijenjeno iz Normalan u Odmah riješiti

postojeći kod

ukloniti konverzije u aplikativnom dijelu kje su predhodnih dana rađene

Akcije #6

Izmjenjeno od Ernad Husremović prije oko 14 godina

hah evo upravo sada vidim da je to zakrpljeno ako ne treba - u aplikativnom dijelu koda :(

Akcije #7

Izmjenjeno od Ernad Husremović prije oko 14 godina

sinoć je saša to radio ovako

imamo znači "milion" bezpotrebnih konverzija u aplikativnom dijelu

Akcije #8

Izmjenjeno od Ernad Husremović prije oko 14 godina

  • Prioritet promijenjeno iz Odmah riješiti u Urgentno

dobro zakrpljeno je tako da se može ovo isporučiti korisnicima kojima je hitno

ovo ćemo onda uzeti u master branchu koji se priprema

Akcije #9

Izmjenjeno od Saša Vranić prije oko 14 godina

fetch_metric sada vraća za stringove hb_utf8tostr

commit

commit

uklonio kod čitanja parametara ovu konverziju iz aplikativnog dijela koda

Akcije #10

Izmjenjeno od Saša Vranić prije oko 14 godina

  • Status promijenjeno iz Dodijeljeno u Zatvoreno
  • % završeno promijenjeno iz 0 u 100
Akcije

Također dostupno kao Atom PDF