powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Высвобождение ресурсов БД (PostgreSQL)
5 сообщений из 5, страница 1 из 1
Высвобождение ресурсов БД (PostgreSQL)
    #38401844
kiruhin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Вопрос, конечно, из разряда "для начинающих", так что сильно не бейте Есть некая функция, которая работает с базой данных (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
Высвобождение ресурсов БД (PostgreSQL)
    #38401926
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первый вариант конечно.
...
Рейтинг: 0 / 0
Высвобождение ресурсов БД (PostgreSQL)
    #38402045
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlПервый вариант конечно.


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


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