TSQLQuery генерирует дополнительные запросы про VIEW

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
jsa
постоялец
Сообщения: 295
Зарегистрирован: 28.11.2017 12:46:04

TSQLQuery генерирует дополнительные запросы про VIEW

Сообщение jsa »

Всем здравствовать!
Попробовали перенести проект из Delphi7 в Lazarus и столкнулись с несколькими проблемами.
Программа работает с базой на MS SQL Server 2008 R2
Перенос сделали импортом проекта Delphi , объекты с запросами заменились с TADOQuery на TSQLQuery
Делаются выборки как из обычных таблиц так и из представлений VIEW
Обнаружены странные дополнительные запросы которые отловили в MS SQL Profiler при запросе к VIEW-шкам
Иногда они подвешивают соединение.
Например

Код: Выделить всё

select i.name, i.indid, c.name as col_name,indexproperty(i.id, i.name, 'IsUnique'),
objectproperty(o.id, 'IsPrimaryKey')
from sysindexes i 
join sysindexkeys k on i.id=k.id and i.indid=k.indid 
join syscolumns c on k.id=c.id and k.colid=c.colid 
left join sysobjects o on i.name=o.name and i.id=o.parent_obj
where i.id=object_id('VIEW_PRINT_DOCS') order by k.indid, k.keyno


Получается в случае select-а ко VIEW кормпонента сама формирует такой запрос.

Была идея что может быть она собирает данные для режима редактирования, но установка ReadOnly ситуацию не меняет.
Кто в курсе почему такая вещь не делается в Delphi и делается в компонентах Lazarus ?
И как это выключить?
jsa
постоялец
Сообщения: 295
Зарегистрирован: 28.11.2017 12:46:04

Re: TSQLQuery генерирует дополнительные запросы про VIEW

Сообщение jsa »

Этот вопрос вроде решил.
SQLQuery.UsePrimaryKeyAsKey:=false
Ответить