Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

c++. многоразовое использование соединения с БД в pqxx

21K
25 мая 2009 года
IERO_Distin
23 / / 21.05.2007
используюсабжевую бибилиотеку дял подключения к БД.
при попытке повторно использовать pqxx::connection и pqxx::work программа уходит в ожидание выхода из
pqxx::work::exec намертво.
код:
Код:
try
  {
    pqxx::connection main_conn ( constr );
    pqxx::nontransaction prew ( main_conn,"tp" );
    ostringstream prequery ( "" );
    prequery<<"select id_type from event_type where code="<<-1<<" and is_err = "<<"false";
    r=prew.exec ( prequery.str() );
    int id_type=atol ( r[0][0].c_str() );
    cout<<id_type<<endl;
    pqxx::work w ( main_conn,"uth" );
    ostringstream query ( "" );
    query<<"select * from event "; //тут будет другой запрос.
    w.exec ( query.str() );
//    cout<<r[0][0].c_str();
    w.commit();
  }
  catch ( ... )
  {
    cout<<"database exception";
  }

как с таким бороться?
412
26 мая 2009 года
grgdvo
323 / / 04.07.2007
Не знаю на сколько много кода за пределами приведеннго примера и что он вообще делает, но первое что предложу - разбить твой пример на две части.

Первая часть инициализирует коннект к базе (объекты connection и work). Заведи глобальные переменные и проинициализируй их где-нибудь в начале программы.

Вторая часть использует уже подготовленный объект work для выполнения запросов.

В конце работы не забываем корректно завершить соединение с базой.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог