Каков точный эффект TDataset.close() в Delphi?

Почему рекомендуется обрабатывать sql-запрос в Delphi следующим образом?:

dataset.close();     //  ?????
dataset.sql.clear(); // old sql-query gets deleted

dataset.sql.add('your sql-query'); // here a query-String is added to your sql-object

dataset.open();  // here your sql-query starts to work

Может ли быть так, что закрытие sql-объекта определяет каждый раз состояние по умолчанию, при котором удаляется предыдущий набор данных, полученный в результате предыдущего sql-запроса?

1 ответ

Решение

Когда вы открываете набор данных, он активирует активное соединение, предполагая, что ваша база данных / драйверы поддерживают это. Некоторые соединения с базой данных поддерживаются, другие нет. Для тех, кто Open Процедура включает открытое соединение с базой данных, и в этом случае вы можете динамически редактировать эти данные, используя набор данных. Итак, когда вы Close набор данных, это обычно закрытие того, что было открыто. Имейте в виду, что TDataset наследуется в другие более конкретные типы, и Open / Close процедуры требуются для многих из них.

Закрытие набора данных также делает недействительными данные, содержащиеся в нем, и поэтому больше не предоставляет эти данные. Ваш запрос останется там, но данные больше не будут доступны для чтения / записи.

Другие вопросы по тегам