Russian Qt Forum
Ноябрь 23, 2024, 15:21 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с подпиской на события из Firebird под Linux (РЕШЕНО)  (Прочитано 2899 раз)
romanick
Гость
« : Сентябрь 22, 2012, 17:32 »

Добрый день!
Столкнулся со странным поведением драйвера 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 через которые летают события!
« Последнее редактирование: Сентябрь 22, 2012, 22:54 от romanick » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 20.