Я не понимаю, является ли проблема, о которой вы спрашиваете, той, с которой вы столкнулись (зависание, увеличение памяти), или только одна, которую вы спрашиваете, и в любом случае ответ, вероятно, зависит от драйвера ODBC и базы данных.Если вы на полпути извлекаете большой набор результатов и просто вызываете SQLFreeStmt (SQL_CLOSE), то что будет дальше, будет зависеть от драйвера ODBC и базы данных.Некоторые драйверы ODBC взаимодействуют с базой данных, используя протокол, который является синхронным, и драйвер ODBC не может сообщить базе данных, что ему больше не нужны строки - они просто отправляются, а драйвер ODBC не знает, кто выДалее мы должны прочитать все эти данные, но выбросить их (что может быть расценено как пауза, особенно если набор результатов большой).Некоторые могут посылать в базу данных какой-то сигнал, говорящий о прекращении отправки строк.
В любом случае, в конце, когда приложение закрыто, использование памяти ни здесь, ни там.Хорошей практикой является попытка привести в порядок, когда ваше приложение закрыто, но это не должно иметь большого значения, если драйвер не создает некоторые системные ресурсы, которые не очищаются должным образом.