Добрый день!
Столкнулся со странным поведением драйвера QIBSQL под linux
Метод QSqlDriver::subscribeToNotification задумывается на минуту, потом возвращает false.
В lastError вижу:
Could not subscribe to event notifications for TEST.
Под Windows эта же программа с этой же БД работает отлично
Плагин libqsqlibase.so пересобирал - не помогает.
Что я делаю не так?
Код:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
db_ = QSqlDatabase::addDatabase("QIBASE", "TEST");
if (!db_.isValid())
{
QString t = db_.lastError().text();
qCritical() << t;
return;
}
db_.setHostName("192.168.0.5");
db_.setDatabaseName("c:\\r\\pp\\bin\\personal_real.fdb");
db_.setUserName("sysdba");
db_.setPort(3050);
db_.setPassword("masterkey");
if (!db_.open() || db_.isOpenError())
{
qCritical() << "error connect to database: " << db_.lastError();
return;
}
qDebug() << "connected";
if (!db_.driver()->hasFeature(QSqlDriver::EventNotifications))
qDebug() << "hasFeature false";
else
qDebug() << "ok";
if (!db_.driver()->subscribeToNotification("NTEST"))
qDebug() << db_.lastError();
else
qDebug() << "subs ok";
connect(db_.driver(), SIGNAL(notification(QString)),
SLOT(onNotify(QString)));
Upd: Qt 4.8.1
Upd2:
Переделал всё под IBPP и получил то же самое
после events_->Add("NTEST", evDisp_);
зависание в течение минуты, потом ошибка:isc_que_events failed
Клиентская библиотека firebird под linux глючит???
Upd3:
Проблема оказалась совсем не там:
http://tracker.firebirdsql.org/browse/CORE-3718Век живи - век учись! На сервере был закрыт порт 3060 через которые летают события!