Страница 2 из 2

Re: Не генерируется запрос _stUpdate (GenerateSQL)

Добавлено: Пн 12 июл 2021 12:42
Akella
Сколько лет работаю с uniDAC, первый раз о таком слышу.
Странно, что мне техподдержка не посоветовала изначально просто оставить эти свойства пустыми и не пилить свой велосипед с TDBAccessUtils.SQLGenerator().


Ладно. Вдогонку еще вопрос. Если мне нужно, чтобы uniQuery не генерировал свои update-запросы, какое свойство нужно отключить?

Спасибо.

Re: Не генерируется запрос _stUpdate (GenerateSQL)

Добавлено: Вт 13 июл 2021 07:53
EvgeniyM
Как мы уже писали в предыдущем посте, для отключения автоматической генерации запроса его необходимо сгенерировать в дизантайме или установить вручную.
Более подробно о компоненте TUniQuery вы можете прочитать по ссылке:
https://www.devart.com/unidac/docs/deva ... iquery.htm .
О его свойствах, методах, событиях:
https://www.devart.com/unidac/docs/deva ... embers.htm .
Вы использовали внутренние методы, которые предназначены для внутреннего использования, поэтому их поведение может измениться в новых версиях и это никак не будет отражено в документации. Поэтому мы не рекомендуем их использовать.
Наши ответы зависят от вашего обращения в техподдержку. Если бы вы спросили, есть ли возможность генерировать SQL запросы в run-time без объяснения для чего это вам надо, то наша техподдержка могла вам предложить такое решение.

С уважением,
Евгений

Re: Не генерируется запрос _stUpdate (GenerateSQL)

Добавлено: Вт 13 июл 2021 07:54
Akella
Вы не поняли, наверное.
Как сделать, чтобы тела update-запросов были пустыми.

Re: Не генерируется запрос _stUpdate (GenerateSQL)

Добавлено: Вт 13 июл 2021 11:05
EvgeniyM
Как было указано ранее, свойства SQLInsert, SQLUpdate, SQLDelete, SQLRefresh по-умолчанию имеют пустое значение. В таком случае, при выполнении DML-операций соответствующие SQL-запросы будут сгенерированы автоматически. Если для любого ил указанных свойств будет установлен SQL-запрос в runtime, либо с использованием редактора в design-time - то будет использован этот запрос.
Что вы имеете ввиду под "тела update-запросов были пустыми"? Мы подразумеваем под этим SQUpdate.Text := ''.

Re: Не генерируется запрос _stUpdate (GenerateSQL)

Добавлено: Вт 13 июл 2021 11:28
Akella
Мы подразумеваем под этим SQUpdate.Text := ''.
Все верно.
Что нужно отключить, чтобы после uniQuery.Open sql-запросы (SQUpdate, SQLInser, SQLDelete) оставались пустыми.
Фактически мне нужен только Select запрос.

Re: Не генерируется запрос _stUpdate (GenerateSQL)

Добавлено: Вт 13 июл 2021 13:13
EvgeniyM
Ничего отключать не нужно. Как было указано ранее, свойства SQLInsert, SQLUpdate, SQLDelete, SQLRefresh по-умолчанию и так имеют пустое значение. Если не устанавливать их вручную - то для DML-операций будут автоматически генерироваться нужные запросы в момент изменения данных. Свойства SQLInsert, SQLUpdate, SQLDelete, SQLRefresh при этом останутся пустыми.
Поэтому если вы вызвали метод Open и не выполняли изменений данных никакие заппросы на изменения формироваться не будут.

Re: Не генерируется запрос _stUpdate (GenerateSQL)

Добавлено: Вт 13 июл 2021 13:50
Akella
DML-операций будут автоматически генерироваться нужные запросы
в третий раз пишу: мне этого не нужно, как это отключить?

Re: Не генерируется запрос _stUpdate (GenerateSQL)

Добавлено: Ср 14 июл 2021 10:29
EvgeniyM
Уточните, пожалуйста, что именно Вы хотите отключить?
Если Вы вообще не собираетесь использовать редактирование данных в датасете - Вы можете установить свойство датасета ReadOnly в True.
Иначе - будет работать то поведение, которое мы описывали: либо будут использоваться запросы SQLInsert, SQLUpdate, SQLDelete, SQLRefresh (если Вы их задали явно), либо соответствующие запросы на изменение данных будут генерироваться автоматически.

Re: Не генерируется запрос _stUpdate (GenerateSQL)

Добавлено: Ср 14 июл 2021 10:43
Akella

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

Уточните, пожалуйста, что именно Вы хотите отключить? 
создание (автогенерацию) update-запросов.

Извините, я уже и не знаю, как вам пояснить :(

что именно в моем вопрос непонятно? какое из слов?

Re: Не генерируется запрос _stUpdate (GenerateSQL)

Добавлено: Ср 14 июл 2021 10:53
Akella

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

Если Вы вообще не собираетесь использовать редактирование данных в датасете - Вы можете установить свойство датасета ReadOnly в True. 
Вообще - тоже не подходит.
Проблема в том, что, если включить ReadOnly, то сетка DBGrid часть полей "рисует" серыми.

По идее, датасет должен быть условно редактируемым, т.е. чтобы сетка "думала", что датасет редактируемый, а самом деле у датасета есть только select и refresh запросы. Как-то так.

Re: Не генерируется запрос _stUpdate (GenerateSQL)

Добавлено: Ср 14 июл 2021 10:56
Akella
Проблема с форумом - не могу прикрепить картинку к сообщению.
В статусе написано "Не удалось прикрепить вложение".

Не знаю, куда сообщить, поэтому пишу здесь.

Re: Не генерируется запрос _stUpdate (GenerateSQL)

Добавлено: Ср 14 июл 2021 11:14
EvgeniyM
Запросы генерируются исключительно для изменения данных на сервере. Если изменения данных не происходит - они не генерируются.

Кроме этого если установить свойство LocalUpdate в True запросы генерироваться не будут. Но и на сервер никакие изменения уходить тоже не будут.

В режиме LocalUpdate данные в наборе данных изменяются локально, но информация об изменениях не сохраняется. Таким образом, вы не можете отправить изменения в базу данных.
Информация о режиме LocalUpdate доступна по ссылке:
https://www.devart.com/unidac/docs/deva ... update.htm

Re: Не генерируется запрос _stUpdate (GenerateSQL)

Добавлено: Ср 14 июл 2021 11:16
Akella
Кроме этого если установить свойство LocalUpdate в True запросы генерироваться не будут. Но и на сервер никакие изменения уходить тоже не будут.
Спасибо!

Re: Не генерируется запрос _stUpdate (GenerateSQL)

Добавлено: Ср 14 июл 2021 14:16
EvgeniyM
Мы рады слышать, что проблема решена. Обращайтесь если у Вас возникнут другие вопросы или Вам потребуется дополнительная информация.