23.03.2007, 15:46 | #1 |
Участник
|
Добрый день.
Пытаюсь внутри кодюнита 1 (СU1) (из любой функции) - выполнить RecordTest.INIT; RecordTest.Pole1 := 1; RecordTest.INSERT; Выдает сообщение об ошибке "Вы не можете сделать изменения в базе данных из этого триггреа". Пробовал вызывать из СU1 свой кодюнит и там выполнять вставку записи. Результат тотже. Может кто-то знает - есть ли возможность произвести вставку записи из CU1 ? |
|
23.03.2007, 16:14 | #2 |
Участник
|
Может это из-за процедуры ? Прав нету на вставку?
OnGlobalInsert(RecRef : RecordRef) IF ChangeLogSetup.READPERMISSION THEN ChangLogMgt.LogInsertion(RecRef); Там же есть отработка события по регистру пользователя - самый обычный код UserTimeRegister.Minutes := Minutes; UserTimeRegister.INSERT; |
|
23.03.2007, 16:25 | #3 |
Участник
|
Из какого тригера? Я сомневаюсь, что он не дал бы в тригере NASHandler вставить строку...
|
|
23.03.2007, 16:29 | #4 |
Участник
|
Например, CompanyOpen()
|
|
23.03.2007, 17:30 | #5 |
Участник
|
Думаю, что некоторые тригеры имеют ограничения, но не все...
Попробуйте, например LogInStart тригер - там должно получиться. |
|
23.03.2007, 17:35 | #6 |
Участник
|
А какая задача стоит, если не секрет?
Просто вспомнился случай, когда я и еще один участник отвечали на конкретный вопрос, код писали и .т.п... а потом третий участник пришел, вник в суть проблемы предложил решение из одной строчки, но немного другим путем Было весело... |
|
23.03.2007, 17:38 | #7 |
Участник
|
А что вы там хотите вставить, если пользователь еще не залогинелся?
|
|
23.03.2007, 17:48 | #8 |
Участник
|
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 |
Участник
|
Что касается FindPrinter, то в нее я добавлял код с INSERT, работает нормально.
|
|
26.03.2007, 10:50 | #10 |
Участник
|
ваша версия Nav ? и под какой версией sql работает ?
|
|
26.03.2007, 11:27 | #11 |
Участник
|
Странно. Тперь при использовании INSERT в FindPrinter - выдает другую ошибку - "Вы не можете выполнить изменения в базе данных, пока не начнется транзакция"
|
|
26.03.2007, 11:41 | #12 |
Участник
|
|
|
26.03.2007, 13:09 | #13 |
Участник
|
|
|
26.03.2007, 13:14 | #14 |
Участник
|
Цитата:
При запуске из дизайнера тип транзакции Browse, при запуске например из отчетов - UpdateNoLocks. |
|