TMSQuery.Open портит память

Обсуждение возникших проблем, предложений и ошибок SDAC компонентов
AndreyZ
Devart Team
Сообщения: 328
Зарегистрирован: Чт 08 сен 2011 13:18

Re: TMSQuery.Open портит память

Сообщение AndreyZ » Ср 09 июл 2014 16:02

Поведение при выполнении запроса, описанного в первом посте, зависит от OLE DB, и мы не можем на это повлиять.

Значение TMSQuery.Options.UniqueRecords установлено в True для возможности получать мета-информацию для корректной автогенерации запросов на изменение данных.

Вы можете устанавливать UniqueRecords в False только для SQL запросов, которые начинаются с конструкции WITH.

saupg
Сообщения: 18
Зарегистрирован: Вт 06 май 2014 07:01

Re: TMSQuery.Open портит память

Сообщение saupg » Чт 10 июл 2014 07:34

Хотелось бы уточнить ещё один момент: если я использую TMSQuеry только для получения данных, без необходимости редактирования (устанавливаю свойство ReadOnly := True), то нет никакого смысла в UniqueRecords = True? И для отключения лишних действий будет даже лучше отключать UniqueRecords для только читающих наборов данных (независимо от наличия конструкции WITH)?

Вообще странная ситуация с WITH. У меня редактируемые наборы данных с WITH (все, что я проверял) - работают нормально. А вот набор данных с WITH и ReadOnly = True, где никакого редактирования и не планировалось, приводит к ситуации из первого поста.

AndreyZ
Devart Team
Сообщения: 328
Зарегистрирован: Чт 08 сен 2011 13:18

Re: TMSQuery.Open портит память

Сообщение AndreyZ » Чт 10 июл 2014 10:37

Да, если вы используете рекордсет только для чтения, то нет особого смысла устанавливать UniqueRecords в True.

Ответить