DB

Indította adamadeak, 2018-06-20, 17:35:03

Sziasztok!


Ne haragudjatok, hogy témát nyitottam ezzel kapcsolatban, de próbálom berakni azt a funkciót a szerverbe, hogy az adatbázisból olvassa a szorzót, viszont, nem fordul le a db.


Csatoltam a txt változatát a ClientManager-nek, esetleg ha valakinek lenne egy kis ideje, rá nézne nekem?


Ez alapján próbáltam:
[spoiler]https://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/3370351-release-automatic-default-priv-rates-db-startup.html[/spoiler]


Köszönöm szépen :)

Hiba üzenet?

Így láthatatlanba átnéztem találtam 1-2 'talán' hibát. Próbáld meg most.

2018-06-20, 18:36:44 #3 Utolsó szerkesztés: 2018-06-20, 20:04:54 Szerző: adamadeak
Bocsi, a hibaüzenet lemaradt. De nem másolom be, Chookez által küldött fájl-al megoldódott a probléma!
Köszönöm Chookez! Figyelmetlenség miatt volt ismét, az általad küldött fájl-al rendesen lefordult!  :)

Üzenet összefésülés: 2018-06-20, 20:04:54

Maga a rendszer működik mindaddig, amíg újra nem indítom a VPS-t.
Újraindítás után "eltűnik" a létrehozott tábla az adatbázisból.


Azért macska körmöztem az eltűnik szót, mert igazából ha frissítem akkor ott van, de mégse. ki érti ezt :D


Egyébként ha újraindítom a VPS-t akkor ezt írja ki:



[spoiler]

DEFAULT_PRIV_EMPIRE: removed 4294967295 expired priv settings.
Failed Default Priv Setting so exit
[/spoiler]


Persze újra nem tudom létre hozni az adott táblát, mert azt írja hogy már van ilyen. (Ami persze nincs de mégis )
Többször próbáltam, mindig "eltűnik" restart után a tábla.


Na ezt bogozza ki valaki :D


Valaki találkozott ilyen hibával?

Ennél a résznél:

if (!__InitializeDefaultPriv())
{
fprintf(stderr, "Failed Default Priv Setting so exit\n");
return false;
}


Kommenteld ki ezt a 2 sort:

fprintf(stderr, "Failed Default Priv Setting so exit\n");
return false;


Hátha segít.

Sajnos így nem fordul le a db.  :-\


Rengeteg variációt kipróbáltam, sehogy sem akar restart után megmaradni az a tábla

Aki esetleg megtenné, hogy most ránéz a csatolt fájlomra, és esetleg privátban megírná hogy mit csesztem el, nagyon megköszönném :)


- Hiába raktam be ezt a funkciót, létre hoztam az adatbázisba a táblát neki, értékekkel, de a VPS újraindítása után eltűnik a tábla.. -

2018-07-02, 18:25:39 #7 Utolsó szerkesztés: 2018-07-02, 18:49:51 Szerző: K3zX
Idézstatic bool bCleanOldPriv = true;
static bool __InitializeDefaultPriv()
{
   if (bCleanOldPriv)
   {
      std::auto_ptr<SQLMsg> pCleanStuff(CDBManager::instance().DirectQuery("DELETE FROM priv_settings WHERE value <= 0 OR duration <= NOW();", SQL_COMMON));
      printf("DEFAULT_PRIV_EMPIRE: removed %u expired priv settings.\n", pCleanStuff->Get()->uiAffectedRows);
   }

Esetleg ha ott elöl a true-t false-ra írod megoldódik? Elvileg akkor nem fut le ez az if.
Habár ha megoldja a hibát, akkor valószínűleg a VPS-eden nincs beállítva az idő, tehát azt sem árt csekkolni előtte.

Amúgy a tábla tűnik el, vagy a tartalma? Mert ha maga a tábla, az nem c++ hiba, hanem adatbázisban van a gond pl InnoDB-s tábla MyISAM helyett vagy fordítva, esetleg teljesen más féle. Meg kell nézni a többi tábla min van, és arra állítani az újat is. (Nekem MyISAM-et használnak a táblák)

Szerk: Betettem én is ezt a rendszert, működik, de a query-be nincs meghatározva az Engine ezért InnoDB-be tette, át kell állítani MyISAM-re, és akkor nem fog eltűnni.

 Nagyon szépen köszönöm!  ;)  Tökéletes!!  ::)