| Предыдущая тема :: Следующая тема | 
	
	
		| Автор | Сообщение | 
	
		| bizon-86 Участник
 
 
 Вступление в Клуб: 16.02.2012
 
 | 
			
				|  Чт Фев 16, 2012 21:45   Видимость переменных уровня пакета |   |  
				| Полезность: Нет оценки 
 |  
				| Всем привет! Подскажите , плз, не могу пока разобраться: есть операция, в которой объявлена переменная-ссылка в локальных описаниях. В секции проверки эта переменная получает некое значение ссылки. В теле же, чтобы посмотреть значение переменной после вызова проверки,  вызываю pragma error(переменная-ссылка).
 
 На операцию создана операция-расширение с вызовом через макросы секций проверки и тела и больше ничего.
 
 Pragma Serially_Reusable не используется. И вообще нет прагм в этих операциях.
 
 Не могу понять, почему получаю null-е значение при вызове операции - расширения?
 Ведь процедурам VALIDATE и EXECUTE пакета базовой операции значение переменной-ссылки должно быть доступно....т.к. оно хранится на время сессии или я ошибаюсь? Такое ощущение, что почему-то идет повторная инициализация пакета, либо новое подключение создается...
 
 Подскажите, плз!
 |  | 
	
		|  | 
	
		| vtar Эксперт
 
 
 Вступление в Клуб: 20.03.2009
 
 | 
			
				|  Пт Фев 17, 2012 08:30    |   |  
				| Полезность: Нет оценки 
 |  
				| То что объявлено в локальных описаниях, в расширение не увидите. 
 Видимостью обладают переменные, в определенном порядке в расширении (зависит , с какой стороны от макроса в расширении вы выводите прагма еррор)
 
 
 
 вырезка из документации
 
 В операциях-расширениях и в операциях, наследующих форму другой операции, определены следующие макросы для обращения к базовой (расширяемой) операции (или операции – владельцу формы):
 •	&BASE$EXECUTE – вызов тела базовой операции (передаются одноименные параметры операции-расширения);•	&BASE$VALIDATE – вызов валидатора базовой операции (передаются одноименные параметры операции-расширения);•	&BASE$SETVARS – установка глобальных переменных базовой операции из глобальных переменных операции-расширения;•	&BASE$GETVARS – установка глобальных переменных операции-расширения из глобальных переменных базовой операции.
 |  | 
	
		|  | 
	
		| bizon-86 Участник
 
 
 Вступление в Клуб: 16.02.2012
 
 | 
			
				|  Пт Фев 17, 2012 09:08    |   |  
				| Полезность: Нет оценки 
 |  
				| Я же ведь не в расширении прагму еррор вставляю, а в теле базовой операции. Из расширения понятно, что ничего не увижу... |  | 
	
		|  | 
	
		| vtar Эксперт
 
 
 Вступление в Клуб: 20.03.2009
 
 | 
			
				|  Пт Фев 17, 2012 09:22    |   |  
				| Полезность: Нет оценки 
 |  
				| > Не могу понять, почему получаю null-е значение при вызове >операции - расширения? 
 Это как понимать ?
 
 p.s. ЗАО ЦФТ в профиле - это шутка ?
 |  | 
	
		|  | 
	
		| bizon-86 Участник
 
 
 Вступление в Клуб: 16.02.2012
 
 | 
			
				|  Пт Фев 17, 2012 09:35    |   |  
				| Полезность: Нет оценки 
 |  
				| Понимать так, что вызывается сначала операция - расширение. Может не корректно выразился  Но хочу получить значение прагмой в теле базовой операции... |  | 
	
		|  | 
	
		| bizon-86 Участник
 
 
 Вступление в Клуб: 16.02.2012
 
 | 
			
				|  Пт Фев 17, 2012 09:38    |   |  
				| Полезность: Нет оценки 
 |  
				| А почему шутка? Нет. Или сотрудники ЦФТ не имеют права писать в форум и знают ВСЕ обо всем?  |  | 
	
		|  | 
	
		| vtar Эксперт
 
 
 Вступление в Клуб: 20.03.2009
 
 | 
			
				|  Пт Фев 17, 2012 09:48    |   |  
				| Полезность: Нет оценки 
 |  
				| Для понимания проблемы надо бы выложить код всех секций операции и расширения. |  | 
	
		|  | 
	
		| bizon-86 Участник
 
 
 Вступление в Клуб: 16.02.2012
 
 | 
			
				|  Пт Фев 17, 2012 09:59    |   |  
				| Полезность: Нет оценки 
 |  
				| сейчас стал проверять еще раз и  все РАБОТАЕТ ! Как так? Может , что здесь местные админы вчера делали или сделали, а потом исправили. Может обновления какие ставили….не знаю даже…Сегодня работает как и должно  по теории работы с данными пакета… 
 Думаю, что вопрос исчерпан. Спасибо большое за ответы, Владимир!
 |  | 
	
		|  | 
	
		|  |