Вопрос знатокам:
Не удается обойти или преодолеть утечку памяти при работе c БД Paradox.
Пробовал использовать стандартный класс CDatabase при многократном вызове функций OpenEx и Close — происходит утечка.
Переписал с использованием ADO — эффекта ноль.
блок программы
...............
while(true)
{
.............
/*
_conn->Open(_bstr_t(db_arc_conn.c_str()), _bstr_t(""), _bstr_t(""), ADODB::adConnectUnspecified);
if (_m_pConn->GetState() == ADODB::adStateOpen)
{
_m_pConn->Close();
}
*/
.............
}
...............
если фрагмент закомментирован пиковая загрузка памяти стабильна,
если раскомментировать стабильно течет на каждой итерации ~18кБ/за итерацию
коннект к БД всегда проходит успешно (во всех моих тестах было так)
Строка подключения:
db_src_conn = "DSN=unitokdb;AUT=1;CT=7;DQ=0;FOC=0;IS=1;PW=myPassword;USF=1;ULQ=1;"
Использую Microsoft Paradox Driver v.5. Пробовал 3,4 — эффект тот же.
Если использовать другую строку подключения (например для подключений к БД MySQL) утечка прекращается.
Версия ОС — WinXP SP2, MDAC 2.81