[solved][Qt] Rozłączanie połączenia MySQL
: 15 wrz 2009, 20:06
Witam, napisałem program, który wykorzystuje 2 bazy danych Sqlite oraz MySQL. Problem występuje z bazą danych MySQL, która znajduje się na serwerze (sqlite w katalogu programu), a mianowicie podczas użytkowania, po ok 3-5 minutach konsola wyrzuca mi błąd:
I koniec, nie pobiera żadnych informacji z bazy MySQL.
Poniżej pokazuje jak nawiązuję połączenie:
A tak wywołuje zapytania z bazy danych:
Tak jak napisałem przez ok 3-5 minut jest ok, a następnie rozłącza się.
A może jakiś inny sposób na rozwiązanie tego problemu?
EDIT:
Po 3 dniach kombinowania i googlowania znalazłem rozwiązanie
, które u mnie działa:
Trzeba było dodać:
Mam nadzieje, że komuś się to przyda i oszczędzi trochę czasu.
Kod: Zaznacz cały
QMYSQLResult::cleanup: unable to free statement handle
Poniżej pokazuje jak nawiązuję połączenie:
Kod: Zaznacz cały
QSqlDatabase mysqlDB = QSqlDatabase::addDatabase("QMYSQL", "mysqlDB");
mysqlDB.setHostName("756.***.***");
mysqlDB.setDatabaseName("*****");
mysqlDB.setUserName("*****");
mysqlDB.setPassword("****xxx");
mysqlDB.setConnectOptions("CLIENT_SSL=1;CLIENT_IGNORE_SPACE=1");
mysqlDB.open();
QSqlDatabase sqliteDB = QSqlDatabase::addDatabase("QSQLITE");
sqliteDB.setDatabaseName("solarium.sqlite");
sqliteDB.open();
Kod: Zaznacz cały
QSqlDatabase mysqlDB = QSqlDatabase::database("mysqlDB");
QSqlQuery queryKtoryPracownik("select ids_pracownicy from sol_pracownicy where login = '"+wybierzUzytkownikaComboBox->currentText()+"'", mysqlDB);
A może jakiś inny sposób na rozwiązanie tego problemu?
EDIT:
Po 3 dniach kombinowania i googlowania znalazłem rozwiązanie

Trzeba było dodać:
Kod: Zaznacz cały
QSqlDatabase mysqlDB = QSqlDatabase::database("mysqlDB");
mysqlDB.open();
QSqlQuery iluMySQLquery("select count(ids_users) from sol_users", mysqlDB);
mysqlDB.close();