What's new

C++ SLZ db fix

Status
Not open for further replies.

ScriptMan

ImMortaL
Staff member
Idézet: "SLZ"

Na ja, amikor még azt a posztot írtam, akkor kb 10-en használtak forrásfájlokat, de mostanság még annyian se mert rengetegen abbahagyták.
Azért írtam Antalnak hogy Skype-on segítek, mert egy konkrét Fabianos Skype beszélgetést adtam neki, mert nem rövid a dolog, ide meg nem másolhatok be ilyen privát beszélgetést, mert arra itt a modok harapnak.

De sebaj, csinálok leírást, majd szerkesztem ezt a posztot. De akkor remélem megy majd archivumba.

Szóval:

Nyissátok meg a db/src/ClientManager.cpp

Ha locale/hungary-t használsz akkor keress a hungary szóra, ha locale/germany-t akkor keress a germany szóra, ha locale/spain akkor keress a spain szóra stb
Az adott ország részénél lesz egy ilyen (ilyesmi) if ág:

C++:
if (g_stLocale != locale.szValue)
    sys_log(0, "Changed g_stLocale %s to %s", g_stLocale.c_str(), "euckr");
Ezt töröljétek vagy kommenteljétek ki, mert fölösleges.
Alatta pedig
C++:
g_stLocale = "latin2";
legyen ha hungary-t használsz, németnél latin1 elvileg.
Oké, nyisd meg a main.cpp-t, keress erre:

C++:
std::string g_stLocale = "euckr";
Módosítsd az euckr-t a te nyelvedre, az én esetemben latin2 a locale/hungary miatt.

C++:
std::string g_stLocale = "latin2";
Oké, ftp-n lépj vissza és nyisd meg a
libsql/AsyncSQL.cpp (libsql és nem libmysql mappa!)

kb 180.sorba lesz ez:
C++:
m_stLocale = c_pszLocale;
lecseréled:
C++:
m_stLocale = "latin2";
Nekem latin2, mert locale/hungary-t használok, locale/germany esetén ugye latin1.

A fájl végén pedig ezt:
C++:
void CAsyncSQL2::SetLocale(const std::string & stLocale)
{
          m_stLocale = stLocale;
          QueryLocaleSet();
}
módosítsd így:
C++:
void CAsyncSQL2::SetLocale(const std::string & stLocale)
{
          if(m_stLocale != stLocale)
          {
                    m_stLocale = stLocale;
                              QueryLocaleSet();
          }
}
most buildeld le a libsql-t. (Ne hagyd ki ezt a lépést!)
Code:
cd /elérés.a.libsql.mappádhoz/libsql
gmake clean
gmake
ha végzett akkor buildeljétek le a db-t:
Code:
cd /elérés.a.db.forráshoz/db/src
gmake clean
gmake
fontos a clean itt is!
gmake clean után bizonyosodjatok meg hogy a .obj folder teljesen üres-e, ha nem akkor töröljétek ami benne van.

Utolsó lépés átállítani az adatbázisokban mindent latin2-re (vagy germany esetén latin1-re ugye)
Megnyitod a navicatet, jobb klikk egy adatbázisra és database properties, majd ott a character setnél kiválasszátok a nektek kellőt (hungary esetén latin2, germany esetén latin1) alatta pedig azt hogy latin2_hungarian_ci vagy latin1_german_ci, értelemszerűen. Bár ott mehettek a generalra is, de jobb ha kiválasszátok az országot.

Ezután indítsátok újra a mysql-t:
Code:
service mysql-server restart
Tegyétek helyére a frissen buildelt db-t, és indítástok el, allítsátok le. Ismételjétek meg 10x, és ha 10x normálisan elindul a db, akkor sikerrel jártatok :)

Pár ország helyes characer set-je: (Ez már csak + információ)
latin1:
german(német)
swedish(svéd)
danish(dán)
spanish(spanyol)

latin2:
hungarian(magyar ;D)
czech(cseh)
croatian(horvát)

latin5:
turkish(török)

latin7
estonian(észt)

To view the content, you need to Sign In or Register.
 
Status
Not open for further replies.
Top