GetOldFieldValueFromJournal
Добавлено: 28 ноя 2007, 13:01
Добрый день.
Столкнулся неожиданно с проблемой использования функции GetOldFieldValueFromJournal.
Открываем доку и читаем
Цитата:
"Функция считывает из журнальной записи значение поля таблицы ДО изменения (если оно есть) и присваивает его заданной переменной или полю. Имеет смысл только для операции update. При остальных операциях функция аналогична GetNewFieldValueFromJournal."
Делаем тестовый пример
Interface jorn ;
create view
var
li1,s,li7,li11 :string ;
cur_nrec :comp ;
from X$JOURNAL jour where ((
1418==TABLECODE
and cur_nrec==TABLENREC
))
;
HandleEvent
CmInit: {
runinterface('getkator',cur_nrec);
_loop jour
{
if operation=4 //если модификация
{
if GetOldFieldValueFromJournal(katorg.name, 674,
Jour.DataRec, Jour.Operation, li1)=true {}
if GetNewFieldValueFromJournal(katorg.name, 674,
Jour.DataRec, Jour.Operation, li11)=true {}
logstrtofile('c:\debug\jorn.txt',Jour.nrec+' '+'ДО: '+li1+' ПОСЛЕ: '+li11);
}
else
{
}
}
CloseInterface(CmDone);
}
end;
end.
В результате отработки вышеупомянутой функции не удается получить значение поля таблицы (katorg.name) до его изменения.
Галактика 8.0, MSSQL. В чем причина ? Если есть возможность, прогоните,плиз, на 8.1 данную штуковину,предварительно поменяв название какой нить орагнизации.
Столкнулся неожиданно с проблемой использования функции GetOldFieldValueFromJournal.
Открываем доку и читаем
Цитата:
"Функция считывает из журнальной записи значение поля таблицы ДО изменения (если оно есть) и присваивает его заданной переменной или полю. Имеет смысл только для операции update. При остальных операциях функция аналогична GetNewFieldValueFromJournal."
Делаем тестовый пример
Interface jorn ;
create view
var
li1,s,li7,li11 :string ;
cur_nrec :comp ;
from X$JOURNAL jour where ((
1418==TABLECODE
and cur_nrec==TABLENREC
))
;
HandleEvent
CmInit: {
runinterface('getkator',cur_nrec);
_loop jour
{
if operation=4 //если модификация
{
if GetOldFieldValueFromJournal(katorg.name, 674,
Jour.DataRec, Jour.Operation, li1)=true {}
if GetNewFieldValueFromJournal(katorg.name, 674,
Jour.DataRec, Jour.Operation, li11)=true {}
logstrtofile('c:\debug\jorn.txt',Jour.nrec+' '+'ДО: '+li1+' ПОСЛЕ: '+li11);
}
else
{
}
}
CloseInterface(CmDone);
}
end;
end.
В результате отработки вышеупомянутой функции не удается получить значение поля таблицы (katorg.name) до его изменения.
Галактика 8.0, MSSQL. В чем причина ? Если есть возможность, прогоните,плиз, на 8.1 данную штуковину,предварительно поменяв название какой нить орагнизации.