AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.03.2007, 15:46   #1  
art06 is offline
art06
Участник
Аватар для art06
 
192 / 10 (1) +
Регистрация: 11.08.2006
Добрый день.

Пытаюсь внутри кодюнита 1 (СU1) (из любой функции) - выполнить

RecordTest.INIT;
RecordTest.Pole1 := 1;
RecordTest.INSERT;


Выдает сообщение об ошибке "Вы не можете сделать изменения в базе данных из этого триггреа".

Пробовал вызывать из СU1 свой кодюнит и там выполнять вставку записи. Результат тотже.

Может кто-то знает - есть ли возможность произвести вставку записи из CU1 ?
Старый 23.03.2007, 16:14   #2  
IGG is offline
IGG
Участник
 
665 / 29 (2) +++
Регистрация: 24.08.2005
Адрес: СПб/Москва
Может это из-за процедуры ? Прав нету на вставку?

OnGlobalInsert(RecRef : RecordRef)
IF ChangeLogSetup.READPERMISSION THEN
ChangLogMgt.LogInsertion(RecRef);

Там же есть отработка события по регистру пользователя - самый обычный код

UserTimeRegister.Minutes := Minutes;
UserTimeRegister.INSERT;
Старый 23.03.2007, 16:25   #3  
randrews is offline
randrews
Участник
Аватар для randrews
 
312 / 10 (1) +
Регистрация: 06.12.2004
Из какого тригера? Я сомневаюсь, что он не дал бы в тригере NASHandler вставить строку...
Старый 23.03.2007, 16:29   #4  
art06 is offline
art06
Участник
Аватар для art06
 
192 / 10 (1) +
Регистрация: 11.08.2006
Например, CompanyOpen()
Старый 23.03.2007, 17:30   #5  
randrews is offline
randrews
Участник
Аватар для randrews
 
312 / 10 (1) +
Регистрация: 06.12.2004
Думаю, что некоторые тригеры имеют ограничения, но не все...
Попробуйте, например LogInStart тригер - там должно получиться.
Старый 23.03.2007, 17:35   #6  
randrews is offline
randrews
Участник
Аватар для randrews
 
312 / 10 (1) +
Регистрация: 06.12.2004
А какая задача стоит, если не секрет?

Просто вспомнился случай, когда я и еще один участник отвечали на конкретный вопрос, код писали и .т.п... а потом третий участник пришел, вник в суть проблемы предложил решение из одной строчки, но немного другим путем
Было весело...
Старый 23.03.2007, 17:38   #7  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
А что вы там хотите вставить, если пользователь еще не залогинелся?
Старый 23.03.2007, 17:48   #8  
art06 is offline
art06
Участник
Аватар для art06
 
192 / 10 (1) +
Регистрация: 11.08.2006
CompanyOpen - был только для примера.
Мне необходимо добавлять записи в определенную таблицу в тот момент работате функция

FindPrinter(ReportID : Integer) : Text[250]
OnGlobalRename(RecRef : RecordRef;xRecRef : RecordRef)
OnGlobalRename(RecRef : RecordRef;xRecRef : RecordRef)
OnGlobalModify(RecRef : RecordRef;xRecRef : RecordRef)
OnGlobalInsert(RecRef : RecordRef)
GetGlobalTableTriggerMask(TableID : Integer) : Integer

Вот из них - не удается запустить INSERT.

Я так понимаю - что придется пробовать с помощь команд SQL INSERT INTO
Старый 26.03.2007, 08:07   #9  
Cheb is offline
Cheb
Участник
Лучший по профессии 2017
 
138 / 13 (1) ++
Регистрация: 22.09.2002
Адрес: Ростов-на-Дону -> Москва
Что касается FindPrinter, то в нее я добавлял код с INSERT, работает нормально.
Старый 26.03.2007, 10:50   #10  
art06 is offline
art06
Участник
Аватар для art06
 
192 / 10 (1) +
Регистрация: 11.08.2006
ваша версия Nav ? и под какой версией sql работает ?
Старый 26.03.2007, 11:27   #11  
art06 is offline
art06
Участник
Аватар для art06
 
192 / 10 (1) +
Регистрация: 11.08.2006
Странно. Тперь при использовании INSERT в FindPrinter - выдает другую ошибку - "Вы не можете выполнить изменения в базе данных, пока не начнется транзакция"
Старый 26.03.2007, 11:41   #12  
RedFoxUA is offline
RedFoxUA
Участник
Аватар для RedFoxUA
 
60 / 10 (1) +
Регистрация: 25.10.2006
Цитата:
Сообщение от art Посмотреть сообщение
OnGlobalRename(RecRef : RecordRef;xRecRef : RecordRef)
OnGlobalRename(RecRef : RecordRef;xRecRef : RecordRef)
OnGlobalModify(RecRef : RecordRef;xRecRef : RecordRef)
OnGlobalInsert(RecRef : RecordRef)
Насколько я помню, в эти триггеры вставить не удаться.
Старый 26.03.2007, 13:09   #13  
Cheb is offline
Cheb
Участник
Лучший по профессии 2017
 
138 / 13 (1) ++
Регистрация: 22.09.2002
Адрес: Ростов-на-Дону -> Москва
Цитата:
Сообщение от art Посмотреть сообщение
ваша версия Nav ? и под какой версией sql работает ?
NAV3.70, SQL2000
Старый 26.03.2007, 13:14   #14  
Cheb is offline
Cheb
Участник
Лучший по профессии 2017
 
138 / 13 (1) ++
Регистрация: 22.09.2002
Адрес: Ростов-на-Дону -> Москва
Цитата:
Сообщение от art Посмотреть сообщение
Странно. Тперь при использовании INSERT в FindPrinter - выдает другую ошибку - "Вы не можете выполнить изменения в базе данных, пока не начнется транзакция"
Проверил у себя, подобное сообщение появляется при запуске отчета из Дизайнера. Если запускать отчет другим способом, то все ок.
При запуске из дизайнера тип транзакции Browse, при запуске например из отчетов - UpdateNoLocks.
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:01.