Добавлено: Чт Окт 25, 2012 10:32 am Заголовок сообщения: Ошибка при создании партии
Код:
Option Explicit
Dim ent, series
Set ent = workarea.Entity(100) ' условный товар
Set series = ent.seriesColl.create ("SerName", "2222", "33333", Date-7, Date)
MsgBox series.Id
series.save
MsgBox series.Id
Первый и второй мессадж бокс выдаёт нули, если код запущен под пользователем, созданным средствами Акцент-администратор. Хотя партия создаётся. Баг будет наблюдаться как в 7 так и в более поздних версиях Акцента (наверно и в 6 тоже, но в той базе 6 Акцента, что у меня есть, нужные разрешения уже проставлены, вероятно вручную), на серверах начиная с MSSQL2005
Причина:
В SQL Server 2005 и более поздних версиях видимость метаданных ограничивается защищаемыми объектами, которыми пользователь владеет или на которые пользователю были предоставлены разрешения. Источник:http://msdn.microsoft.com/ru-ru/library/ms187113%28v=sql.100%29.aspx
В данном случае это:
Код:
select @ret = ident_current('SERIES')
в процедуре ap_series_update
Решение: Необходимо добавить разрешение как минимум на SELECT для ap_public в таблице SERIES
Добавлено: Вс Окт 28, 2012 9:19 am Заголовок сообщения:
Ну да, конкретной базы. Той, которая идет вместе с Акцентом. Какая процедура развертывания Акцент-SQL? Разве не на основании базы, которая идет в поставке?
На счет того, что никто не столкнулся - причины могут быть разные:
1. Используют SQL2000
2. Работают под пользователем имеющим соотв. права (например, созданным не в Акцент-администраторе, а скриптом addadmin.sql или другими способами)
3. В решении не используется код с багом.
4. Программист (админ) уже пофиксил баг.
5. Нашли способ обходить ошибку и игнорируют
6. Прочее...
Последний раз редактировалось: Oleksandr (Вс Окт 28, 2012 10:03 am), всего редактировалось 1 раз
Добавлено: Вс Окт 28, 2012 5:47 pm Заголовок сообщения: Re: Ошибка при создании партии
olimp писал(а):
Или будет там, где были шаловливые руки админа ))))
Причем тут вообще админ? Разрешения в базе и в скрипте нет изначально, а не админ его снимает.
olimp писал(а):
Разверни базу с нуля, накати скрипт из поставки, напиши модуль, который ошибку показывает, сделай бекап и пришли его с модулем мне.
Я указал на ошибку. Код тоже написал. Воспроизвести её Вы и сами можете, хоть накатывая базу с помощью скрипта, хоть подключая базу из поставки. Кол-во манипуляций минимальное.
Новая база на SQL SERVER => 2005 -> Новый пользователь (в том числе в группе Admins), созданный "Акцент администратором" -> Вышеуказанный код
Добавлено: Вс Окт 28, 2012 9:36 pm Заголовок сообщения: Re: Ошибка при создании партии
Oleksandr писал(а):
olimp писал(а):
Или будет там, где были шаловливые руки админа ))))
Причем тут вообще админ? Разрешения в базе и в скрипте нет изначально, а не админ его снимает.
Кто имеет право изменять права доступа, как не админ ?
Раздача прав по умолчанию тоже на нем висит. И администрированием можно легко добиться того, что каждого пользователя нужно будет руками создавать в консоли.
Цитата:
Я указал на ошибку. Код тоже написал. Воспроизвести её Вы и сами можете, хоть накатывая базу с помощью скрипта, хоть подключая базу из поставки. Кол-во манипуляций минимальное.
Новая база на SQL SERVER => 2005 -> Новый пользователь (в том числе в группе Admins), созданный "Акцент администратором" -> Вышеуказанный код
С сериями работают все прикладные решения. Если за 7 лет существования SQL 2005 и 4 лет существования SQL 2008 никто не наступил на такие же грабли, что и ты, тратить время на то, чтобы убедится в нахождении проблемы на стороне клиента, я не буду.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах