Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Высвобождение ресурсов БД (PostgreSQL) / 5 сообщений из 5, страница 1 из 1
19.09.2013, 17:13
    #38401844
kiruhin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высвобождение ресурсов БД (PostgreSQL)
Добрый день.
Вопрос, конечно, из разряда "для начинающих", так что сильно не бейте Есть некая функция, которая работает с базой данных (PostgreSQL). Есть небольшой момент по поводу высвобождения ресурса после окончания работы функции. Как лучше сделать из двух нижеприведенных вариантов?

Вариант 1:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
int some_func {
    sprintf(sql_query, "SELECT * FROM forum");
    sql_query_result = PQexec(conn, sql_query);
    PQclear(sql_query_result);
    ...........
    ...........
    sprintf(sql_query, "SELECT * FROM news");
    sql_query_result = PQexec(conn, sql_query);
    PQclear(sql_query_result);
    ...........
    ...........
    return 0;
}



Вариант 2:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
int some_func {
    sprintf(sql_query, "SELECT * FROM forum");
    sql_query_result = PQexec(conn, sql_query);
    ...........
    ...........
    sprintf(sql_query, "SELECT * FROM news");
    sql_query_result = PQexec(conn, sql_query);
    ...........
    ...........
    PQclear(sql_query_result);
    return 0;
}



Т.е. лучше вызывать PQclear() после КАЖДОГО запроса к БД (вариант 1) или достаточно вызвать PQclear() в самом конце функции (вариант 2)? Естественно, преследуется цель избежать утечки памяти.
Спасибо
...
Рейтинг: 0 / 0
19.09.2013, 17:53
    #38401926
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высвобождение ресурсов БД (PostgreSQL)
Первый вариант конечно.
...
Рейтинг: 0 / 0
19.09.2013, 19:30
    #38402045
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высвобождение ресурсов БД (PostgreSQL)
White OwlПервый вариант конечно.


Потому что ты затрёшь первый набор и вторым присваиванием и первый набор уже никогда не будет освобождён.
...
Рейтинг: 0 / 0
19.09.2013, 19:44
    #38402059
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высвобождение ресурсов БД (PostgreSQL)
kiruhin, что за вопрос? Так, как написано в документации, то есть «Вариант 1».
...
Рейтинг: 0 / 0
19.09.2013, 20:17
    #38402085
kiruhin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Высвобождение ресурсов БД (PostgreSQL)
Спасибо всем за ответ. Теперь все сомнения сняты :)
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Высвобождение ресурсов БД (PostgreSQL) / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]