Page 1 of 1

Nulinasi SQL reikšmės

Posted: 2013 Apr 04 20:53
by xedga
Labas vakaras
Turiu problema su SQL, nulinasi rezultatai, ir niekaip nepavyksta nustatyti kodėl... Kažkas minėjo, kad gali būt kažkas blogai su update, tad imetu koda:

Code: Select all

public CheckAndSave( id ){    new szTemp[ 512 ]    format( szTemp, charsmax( szTemp ), "UPDATE %s SET nick = '%s', info1 = '%i', info2 = '%i', info3 = '%i', info4 = '%i', info5 = '%i', info6 = '%i', info7 = '%i', info8 = '%i', info9 = '%i', info10 = '%i', info11 = '%i'WHERE authid = '%s'",     SQL_TABLE, g_szName[ id ], g_szinfo1[id], g_szinfo2[id], g_szinfo3[id], g_szinfo4[id], g_szinfo5[id], g_szinfo6[id], g_szinfo7[id], g_szinfo8[id], g_szinfo9[id], g_szinfo10[id], g_szinfo11[id], g_szAuthID[id] )        SQL_ThreadQuery( g_SqlTuple, "IgnoreHandle", szTemp )        if( g_szinfo1[ id ] >= MAXINFO )    {                        g_szinfo1[ id ] = MAXINFO                CheckAndSave( id )    }}

Re: Nulinasi SQL reikšmės

Posted: 2013 Apr 04 21:14
by beast
Ar dažnai nulinasi?

O šiaip aš irgi turėjau tokią pačią problemą. Bandžiau išspręsti taip:
1. nesiųsti update užklausos ant client_disconnect;
2. kol prisijungusiam žaidėjui neužkrauna duomenų (kol neiškviečiama užklausos handle funkcija), tol nesiųsti kitų update užklausų;

Tai padarius LYG ir pavyko išspręsti šią bėdą.

Re: Nulinasi SQL reikšmės

Posted: 2013 Apr 04 21:33
by xedga
Nulinasi nelabai dažnai, pora žaidėjų stebėjau kurie dažnai žaidžia, tai vienam dažniau, kas 3 dienas maždaug, kitam rečiau, kas savaite mždg.
1. Seniau nesiūsdawau update ant client_disconect, bet kadangi niekaip nerandu problemos, galwojau gal blogai kai nesiunciu, tai dabar siunciu. Vis vien updatinant ar ne rezultatai nulinasi.
2.Rytoj, kai pc busiu pabandyt reiks
Ačiū

Re: Nulinasi SQL reikšmės

Posted: 2013 Apr 05 13:46
by aaarnas
Nulinasi dėl to, kad ant client_connect (ar kito) iškviečiant nustatom tam žaidėjui viską į 0. Ir atsitinka tokie dalykai, kad neužkrovus jam duomenų yra siunčiamas išsaugojimas, dėl to tuos nulius išsaugo. Reikėtų tikrinti atskirai ar tam žaidėjui yra užkrauti duomenys ir išsaugoti tik tuo atveju, jei jie buvo užkrauti. Reikia tokius dalykus tvarkingai daryti.