26 апреля 2010

Подписка на PostgreSQL записки.

Для того чтобы забирать нотисы генерируемые в процедурах postgresql, выполняем следующие шаги:



  • Подключаем заголовочные файлы: для qt sql драйвера и для pq библиотеки
    #include <QtSql/qsql_psql.h>
    #include "libpq-fe.h"




  • Определяем обработчик нотиса:
    void noticeProcessor(void * /*arg*/, const char * message)
    {
      QString msg = QString::fromUtf8(message);
      qWarning() << msg; 
    } 
    





  • Регистрируем обработчик
    QVariant v = QSqlDatabase::database(d->databaseConnection).driver()->handle();
    
    if (!QString::compare(v.typeName(),"PGconn*")) 
    {
      PGconn *handle = *static_cast(v.data());
      if (handle != 0) 
      {
        PQsetNoticeProcessor(handle, noticeProcessor, 0);
      }
    }
    

  • Комментариев нет:

    Отправить комментарий