Генератор tUniQuery не видит поле

Обсуждение возникших проблем, предложений и ошибок UniDAC компонентов
Ответить
Akella
Сообщения: 200
Зарегистрирован: Пн 02 апр 2012 14:41

Генератор tUniQuery не видит поле

Сообщение Akella » Вс 25 окт 2020 17:43

Delphi Rio, UniDAC 8.3.2., Firebird 3.

В tUniQuery был запрос и все другие запросы тоже были сгенерированы ранее, на вкладке SQL Generator.
Теперь я добавил в запрос на вкладке SQL новое поле. Но оно не появилось на вкладке SQL Generator.
Что я только не делал: очищал все запросы на вкладке Update SQL, очищал таблицу и заново ее выбирал в списке Table name на вкладке SQL Generator.

Поле в таблице есть, потому что после добавления поля в SQL-запрос я нажимал на Execute, в контекстном меню выбирал Dataset editor и ошибок не было.
Вложения
Screenshot_22.jpg
Screenshot_22.jpg (16.42 КБ) 1122 просмотра
Screenshot_23.jpg
Screenshot_23.jpg (53.09 КБ) 1122 просмотра
Screenshot_24.jpg
Screenshot_24.jpg (31.19 КБ) 1122 просмотра

Akella
Сообщения: 200
Зарегистрирован: Пн 02 апр 2012 14:41

Re: Генератор tUniQuery не видит поле

Сообщение Akella » Пн 26 окт 2020 11:58

Добрый день.
У вас техподдержка существует?

Akella
Сообщения: 200
Зарегистрирован: Пн 02 апр 2012 14:41

Re: Генератор tUniQuery не видит поле

Сообщение Akella » Пн 26 окт 2020 12:51

Та же самая база, но компоненты доступа FibPlus.
На снимке видно, что SQL-генератор видит поле и сгенерировал правильный update-запрос:
Вложения
Screenshot_45.jpg
Screenshot_45.jpg (25.27 КБ) 1113 просмотров

oleg0k
Devart Team
Сообщения: 21
Зарегистрирован: Вт 10 мар 2020 17:46

Re: Генератор tUniQuery не видит поле

Сообщение oleg0k » Пн 26 окт 2020 16:06

Здравствуйте,
Нам не удалось воспроизвести указанное вами поведение в UniDAC. Списки Key Fields и Update Fields на вкладке SQL Generator заполняется не на основании Select запроса, а автоматически обновляются из базы при открытии открытии редактора свойств компонента TUniQuery. Также обратите внимание, что поля добавляются в Update SQLs запросы на основании выделенных полей в Update Fields.
Если вышеуказаное не помогло в решении проблемы, то составьте небольшой пример, демонстрирующий ситуацию, а также DDL скрипт на создание и заполнение обьектов базы и последовательность шагов для воспроизводства проблемы и пришлите нам, используя форму: https://devart.com/company/contactform.html
У вас техподдержка существует?
Наша техподдержка отвечает в течение одного рабочего дня: если вы задали вопрос в понедельник, то мы сделаем все, чтобы вы до вечера вторника получили ответ. Если вы задали вопрос в воскресенье, то ответ вы также получите до вечера вторника, т.к. воскресенье выходной. Спасибо за понимание.

wbr, Oleg
Devart Team

Akella
Сообщения: 200
Зарегистрирован: Пн 02 апр 2012 14:41

Re: Генератор tUniQuery не видит поле

Сообщение Akella » Пн 26 окт 2020 16:28

отправил вам тестовый проект

oleg0k
Devart Team
Сообщения: 21
Зарегистрирован: Вт 10 мар 2020 17:46

Re: Генератор tUniQuery не видит поле

Сообщение oleg0k » Пн 26 окт 2020 17:08

Здравствуйте,
Изучив более внимательно присланные вами скриншоты, мы обнаружили, что ошибки нет и поле CADASTRAL_NUMBER присутствует как в списках Key Fields и Update Fields, так и в сформированных запросов на владке Update SQLs. Оно находится перед полем YEAR_OF_BUILD

wbr, Oleg
Devart Team

Akella
Сообщения: 200
Зарегистрирован: Пн 02 апр 2012 14:41

Re: Генератор tUniQuery не видит поле

Сообщение Akella » Пн 26 окт 2020 17:18

Точно. Спасибо. А слона-то я и не заметил.

Тогда вопрос другой: почему генератор выстраивает поля не так, как они в исходном коде?

oleg0k
Devart Team
Сообщения: 21
Зарегистрирован: Вт 10 мар 2020 17:46

Re: Генератор tUniQuery не видит поле

Сообщение oleg0k » Вт 27 окт 2020 11:09

Здравствуйте,
Как мы уже писали, списки Key Fields и Update Fields на вкладке SQL Generator заполняются автоматически на основании метаданных таблиц(ы), а не на основании вашего SELECT-запроса.

wbr, Oleg
Devart Team

Ответить