Название: Непонятная работа QSqlDataBase Отправлено: demiurg от Май 05, 2011, 10:16 Вообщем начал работать с БД, создаю соединение , всё работает. Но решил просимулировать разрыв соединения. Вылезли непонятные траблы.
Вообщем в коде Кусок где создаётся само подключение и его настройки Код: bool EchoServer::start() { Соединяю бызу данных при первом приходе данных на сервак, и проверяю на разрыв при следующих. Код: void EchoServer::onRead() Собственно тут и начинается непонятки : по дебагеру и введённой (для проверки дебагера) метки i сюда bool connected = db.open(); никогда не попадаем , не при включении , не при последующих db.close, хотя переменная c_е и становится false. НО соединение с базой в итоге есть, пишет в базу , извлекает итд. Вот собственно и непонятки где собственно он её открывает? Название: Re: Непонятная работа QSqlDataBase Отправлено: Amigo_sa от Май 05, 2011, 10:31 Цитировать QSqlDatabase QSqlDatabase::database ( const QString & connectionName = QLatin1String( defaultConnection ), bool open = true ) [static] Returns the database connection called connectionName. The database connection must have been previously added with addDatabase(). If open is true (the default) and the database connection is not already open it is opened now. If no connectionName is specified the default connection is used. If connectionName does not exist in the list of databases, an invalid connection is returned. Название: Re: Непонятная работа QSqlDataBase Отправлено: demiurg от Май 05, 2011, 13:29 О, точно , спс. Сколько раз зарекался курить help , а не книжки ;D
Правда тоже лажа получается Вот так QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL","zx"); //////////////////////////////////////////////////////////////////////// QSqlDatabase db = QSqlDatabase::database("zx",false); bool c_e=db.isOpen(); if (!c_e) { bool connected = db.open(); this->i++; if (!connected) { cout << STR(QObject::tr("Не могу запустить БД")); }; if (connected) { cout << STR(QObject::tr("Переподключение")); } }; Неподключается к БД. По дебагеру db не принимает значение подключения "zx" А по дефолту всё ОК. ??? //////////////////// Всё нашёл переопределил объект QSqlQuery sql = QSqlQuery(db) как QSqlQuery sql = QSqlQuery() и вязался с не тем соединением. |