Sziasztok!
Ket program van osszekapcsolva adatbazison keresztul. Egyik beirja a valtoztatast az adatbazisban, a masiknak eszre kell vennie es reagalni.
A masodik programmal lenne kerdesem, amelyik figyeli a valtoztatasokat.
Inditottam egy szalat, amelyben talalhato egy ciklus:
while (!exit)
{
if (query.exec(sql_cmd))
{
while(query.next())
{
//Lekerdezes eredmenyenek a begyujtese
}
// Lekerdezes eredmenyenek az osszehasonlitasa az elozo eredmennyel.
// Ha van valtozas akkor reagalni ra.
}
}
A problema, hogy csak bizonyos iteracio szam alatt mukodik, az felett a QSqlQuery kulonfele hiba uzeneteket ad vissza:
-MySQL server has gone away QMYSQL: Unable to execute query
-Lost connection to MySQL server during query QMYSQL: Unable to execute query
-Valami olyasmi hogy nem tudja az eroforrasokat felszabaditani.
Elgondolkodtam hogy ez-e a helyes ut? Mert azert ez folyamatos szerver terheltseget okoz. Talan be kellene tennem egy timer-be a kodot es mondjuk 500ms-ra allitva az ismetelt vegrehajtasi idot.
Mi a velemenyetek?
Mit mondana a nagy konyv?
Ugyanis olvastam informaciot a isActive() finish() metodusokrol de nem segitett.
Elore is koszonom a tanacsokat.
ui: Hogyan kell hasznalni a
-t? Mert nekem nem csinalt "code indent".
Ugy tunik meg van a hiba!!
Nem figyeltem es ez okozott problemat es rejtelyes hibauzeneteket.
Fo szalban letrehoztam az adatbazis kapcsolatot (ami qsqldatabase tipusu persze). Munkaszalakban ugyanugy letrehoztam mas kapcsolatnevvel az adatbazis kapcsolatot pl.: QSqlDatabase db; db.addDatabase("QMYSQL","1");
Eddig OK. DE! A munkaszalban elegansan es nem figyelve ezt hasznaltam:
QSqlQuery query;
query.exec("AKARMILYEN SQL PARANCS");
Mi a baj? A QSqlQuery query az alapertelmezett adatbazis kapcsolatot hasznalja fel, ami a foszalban talalhato. Ha tobb szalbol probaltam futtatni a query.exec()-et akkor osszeomlott a program.
Megoldas? QSqlQuery query(db); MINDEN KULON SZALBAN!!!!!!!