Генерировать запрос на вставку.

По какому принципу в датасете при нажатии на галочку "генерировать запрос на вставку" появляются поля? Мне нужно обновлять поле в таблице, оно есть и в tbl и в sq и в ds а в insert/update/delete квери не попадает. См. рис.

Нравится

13 комментариев

Здравствуйте Анна,
А можете прикрепить сервисы tbl, sq ,ds и сказать какое именно поле не попадает в запрос обновления update?

Вот эта прелесть :)

Не вставляется поле OfferMovemntTypeID

Добрый день!

Анна, проверьте сервис таблицы. Убедитесь, что проблемное поле типа "Уникальный идентификатор", и что для него созданы Relations.

Все есть...

Анна, протестировать Ваши сервисы возможности нет, поскольку в них есть ссылки на таблицы, которых нет в базовых версиях.

Советую проверить еще SelectQuery, если проблем не обнаружите, свяжитесь с support'ом предоставив бэкап базы.

Такая же ситуация есть в версии 3 3 2 173 xrm distrib, см вложение, в insert query нет OfferingMovementTypeID. В sql, просматривая таблицу tbl_OfferingInMovement, видно, что OfferingMovementTypeID пустые во всех строках.

"Анна Проненко" написал:По какому принципу в датасете при нажатии на галочку "генерировать запрос на вставку" появляются поля? Мне нужно обновлять поле в таблице, оно есть и в tbl и в sq и в ds а в insert/update/delete квери не попадает. См. рис.

Если вопрос теоретический - про принцип генерации этих запросов из сервиса ds_***, то тут помогут только гуру техподдержки:smile: Кстати, в delete query оно попадать в блок where и не будет по умолчанию, туда первичный ключ видимо берется только.

Если практический - а если написать в скрипте добавление записи в эту таблицу (tbl_OfferingInMovement ?) вручную через Dataset.Append() и так далее, в том числе указав Dataset('OfferMovemntTypeID') = 'нужное значение ID', то все добавится корректно и ошибок нет? Тогда посмотрите через Profiler какой реальный запрос исполняется в момент добавления, а сгенерированные из ds_*** просмотром чудо-запросы позабудьте:smile:

"Александр Кудряшов" написал:

Если практический - ...


Самим дописать можно, но зачем, если есть возможность что-то подправить, чтобы в "автоматом сгенерированнный" попадало нужное поле.
В профайлере как раз тот запрос к базе, который виден в "просмотре" в админке.

"Анна Проненко" написал:Самим дописать можно, но зачем, если есть возможность что-то подправить, чтобы в "автоматом сгенерированнный" попадало нужное поле.
В профайлере как раз тот запрос к базе, который виден в "просмотре" в админке.

а поле с типом заполнено в датасете было? я к тому что если оно пустое генерируемый запрос автоматом обрубается до набора значимых полей (это не знание, скорее размышления, самому интересно)

"Александр Кудряшов" написал:
...

а поле с типом заполнено в датасете было? я к тому что если оно пустое генерируемый запрос автоматом обрубается до набора значимых полей (это не знание, скорее размышления, самому интересно)

Да, до и после post() в нужном поле нужное ID есть :)

Посмотрел таблицу tbl_OfferingInMovement в 3.3.2, запрос тоже... похоже это поле OfferMovemntTypeID в таблице осталось как рудимент от каких-то старых версий, по крайней мере в моих вариантах баз на 3.3.2 и 3.4 в запросе данные в одноименное поле тянут из приJOINненной таблицы, а само таинственное поле вообще не используют :smile:

Подождем, мне кажется, у разработчиков ответ есть :)

Обратитесь с Вашей базой в support, вопрос будет решен :smile:

Показать все комментарии