RUS  ENG 

Операции обновления/добавления записи

Страницы: 1
RSS
Операции обновления/добавления записи, Операции обновления/добавления записи в связанных таблицах
 
Добрый день!

Версия сервера: 8.0.0.7124u
Версия 8.0.0.7124u
Дата сборки 03.07.2019

Есть две таблицы связанные "много к одному". Обе таблицы имеют своё поле связи с картой.У обоих поле связи ключевое.
У таблицы 2 второй ключ с счётчиком (MSSQL)
Каждая таблица имеет разграничение прав посредством MSSQL

При выборе Слой - Базы данных - Заполнить все базы слоя обновляется только таблица 1
при Слой - базы - участки - Заполнить действует так же
Почему не обновляется количество записей в таблице 2 ?

У пользователя имеющего разрешение на изменения в только таблице 2 при Заполнить все базы слоя не появляется никакого сообщения недостаточности прав, но и действий никаких не происходит - записи не обновляются.

Таблицу 2 можно обновить вызвав запрос содержащий поле привязки к карте и Обновить число записей
Но есть и тут сложности
Если установлено Запрещать групповые изменения атрибутов то количество не обновляется - недостаточно прав.
Можно не запрещать обновление количества записей при запрете групповых изменений атрибутов??
Каждая таблица имеет разграничение прав на уровне MSSQL таким образом обновить сможет только пользователь которому позволено изменять его таблицу

Можно было бы сделать через Правила добавлять/удалять запись, но и в правилах только база а не отдельные таблицы.
Изменено: Pavels Sarkovs - 03.07.2019 15:44:13
 
Цитата
Pavels Sarkovs написал:
Есть две таблицы связанные "много к одному". Обе таблицы имеют своё поле связи с картой.У обоих поле связи ключевое.
Как я писал раньше, в операции "обновление числа записей" участвует только одна таблица, "базовая", т. е. та у которой назначена связь с картой. Остальные таблицы рассматриваются как справочные и не модифицируются. Обе таблицы не могут иметь связь с картой, т. к. такая связь в дизайне запроса по определению одна.
Цитата
У пользователя имеющего разрешение на изменения в только таблице 2 при Заполнить все базы слоя не появляется никакого сообщения недостаточности прав, но и действий никаких не происходит - записи не обновляются.
Мы исправим это, должно выдаваться сообщение об ошибке. Сейчас, если включена опция помещать сообщения об ошибках в окно Сообщения, то сообщения должны появляться там.
Цитата
Если установлено Запрещать групповые изменения атрибутов то количество не обновляется - недостаточно прав.
Можно не запрещать обновление количества записей при запрете групповых изменений атрибутов??
Нет, пока нельзя, мы подумаем, как выделить это в отдельное разрешение.
 
Добрый день!

Возможно немного запутал с линковаными таблицами, переформулирую.
Слой сеть - база данных - участки - таблицы
Таблиц две (может быть три, четыре и т.д)
Слой сеть - база данных - участки - Запросы
На основе каждой из таблиц создан запрос, в запросе указано поле связи с картой Sys
Не трогаем пока связанных, каждая таблица отдельная со своим запросом/формой и полем связи с картой.
Цитата
Дмитрий Озеров написал:
Как я писал раньше, в операции "обновление числа записей" участвует только одна таблица, "базовая", т. е. та у которой назначена связь с картой. Остальные таблицы рассматриваются как справочные и не модифицируются. Обе таблицы не могут иметь связь с картой, т. к. такая связь в дизайне запроса по определению одна.
Вопрос:
Какая таблица является "базовой", по названию (а если переименую?), какой механизм обновления при использовании Заполнить все базы слоя?
Все же таблицы имеют свой запрос и своё поле связи.


2.
Цитата
Дмитрий Озеров написал:
Сейчас, если включена опция помещать сообщения об ошибках в окно Сообщения, то сообщения должны появляться там.
Сообщение не появляется.

Цитата
Дмитрий Озеров написал:
Нет, пока нельзя, мы подумаем, как выделить это в отдельное разрешение.
В принципе "остроту" частично могло бы снять если бы обновлялись действительно все таблицы слоя.
Поясню.
Есть Пользователь 1 и Пользователь 2
Есть Таблица 1 и Таблица 2

Пользователь 1 имеет Права на Таблицу 1 и 2 и права на групповые изменения атрибутов
Пользователь 2 имеет права только на Таблицу 2 и запрет групповых изменений атрибутов
Т.е. пользователь 2 вообще не может обновить количество записей
Пользователь 1 может это сделать используя Сжать/Заполнить все базы слоя не бегая по Запросам отдельно каждой таблицы
 
Pavels, добрый день!
  1. "Базовой" мы называем таблицу в запросе, у которой выбрано поле связи с картой. Базовой она является относительно остальных таблиц в этом запросе. Остальные таблицы обычно справочные.
  2. При выполнении любой операций с базой данных всегда используется какой-то один запрос.
  3. Если запрос не выбран явно, используется запрос "по-умолчанию", выбранный в базе данных. Часто он называется "Основной".
  4. В диалоге "Базы данных" кнопки Сжать и Заполнить работают с запросом по-умолчанию.
  5. В браузере базы данных используется запрос, который соответствует текущей выбранной форме.
  6. Ещё раз уточню: Сжать и Заполнить (как и других операции манипулирования данными) всегда используют какой-то один запрос.
 
Добрый день!

Версия сервера: 8.0.0.7161u
Версия монитора: 8.0.0.7161u
Версия 8.0.0.7161u


Перестали добавляться записи в не основной запрос/таблицу.
При выборе формы - Обновить число записей - сообщение "Будет добавлено 2 записи"
Добавление не происходит.
Удаление работает.
Не понимаю где искать причину.
 
Pavels, а в окне Сообщений пишет причину отказа ?

И ещё: мы изменили логику синхронизации записей, добавляются записи только в запросах один-к-одному.
 
Отказа нет, в окне Сообщений ничего не пишет. Пробовал запрос без связей результат такой же.


Цитата
Дмитрий Озеров написал:
И ещё: мы изменили логику синхронизации записей, добавляются записи только в запросах один-к-одному.
А как теперь управлять запросами один-к-много?
Как обновить записи в таком запросе?
 
Pavels,
  1. Тогда я предлагаю разобраться в TeamViewer, должно либо работать, либо сообщать о сбое
  2. При связи один-ко-многим, синхронизация заключается только в удалении лишних записей, добавление пустых записей не предусмотрено.
Страницы: 1