CftClub.ru
Клуб специалистов ЦФТ-Банк

Интересная тонкость с числом компиляций операции
На страницу 1, 2  След.
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
Матвеев Евгений
Профи


Вступление в Клуб: 31.01.2012
СообщениеПт Сен 07, 2012 10:59   Интересная тонкость с числом компиляций операции Ответить с цитатой
Полезность: Нет оценки
Работая девелопером во внебанковской сфере писал программы и через файл сохранял инкремент номера компиляции... А затем подтягивал его в главную форму программы.
Знает ли кто нибудь механизм вывода, например, в заголовок формы операции порядковый номер её компиляции???

Удобно... а то не всегда при перекомпиляции АСД реально заменяется эта же операция в Навигаторе... При помощи номера всё наглядненько


... ну или выводить в заголовок операции дату и время её последней перекомпиляции...
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПт Сен 07, 2012 11:44    Ответить с цитатой
Полезность: 1
в таблице METHODS можно увидеть дату, время и имя пользователя внесшего последние изменения. Думаю, что есть возможность каким либо образом вытянуть и время последней компиляции из истории. Но вот имя таблицы я, к сожалению не подскажу - не знаю.
_________________
всегда есть как минимум 2 выхода
devor
Профи


Вступление в Клуб: 13.02.2012
СообщениеПт Сен 07, 2012 14:17    Ответить с цитатой
Полезность: 1
Alexsey пишет:
Думаю, что есть возможность каким либо образом вытянуть и время последней компиляции из истории. Но вот имя таблицы я, к сожалению не подскажу - не знаю.


Код:

select  max(uo.LAST_DDL_TIME) from
user_objects uo,
methods m
where
uo.OBJECT_NAME = m.package_name
and m.class_id = 'PR_CRED'
and m.short_name='NEW_DOG_N'
Матвеев Евгений
Профи


Вступление в Клуб: 31.01.2012
СообщениеПт Сен 07, 2012 14:25    Ответить с цитатой
Полезность: Нет оценки
Впечатляюще...
Вот если бы еще и время получать как нибудь... А то сами знаете, за один день компиляций может быть десятки... при непосредственно разработке искомой операции
Матвеев Евгений
Профи


Вступление в Клуб: 31.01.2012
СообщениеПт Сен 07, 2012 14:31   По всей видимости вот так... Ответить с цитатой
Полезность: Нет оценки
select max(TIMESTAMP) from
user_objects uo,
methods m
where
uo.OBJECT_NAME = m.package_name
and m.class_id = 'PR_CRED'
and m.short_name='NEW_DOG_N'
devor
Профи


Вступление в Клуб: 13.02.2012
СообщениеПт Сен 07, 2012 14:32    Ответить с цитатой
Полезность: Нет оценки
Матвеев Евгений пишет:
Впечатляюще...
Вот если бы еще и время получать как нибудь... А то сами знаете, за один день компиляций может быть десятки... при непосредственно разработке искомой операции

Код:

select  max(uo.LAST_DDL_TIME), max(uo.TIMESTAMP) from
user_objects uo,
methods m
where
uo.OBJECT_NAME = m.package_name
and m.class_id = 'PR_CRED'
and m.short_name='NEW_DOG_N'
devor
Профи


Вступление в Клуб: 13.02.2012
СообщениеПт Сен 07, 2012 14:34    Ответить с цитатой
Полезность: Нет оценки
А в заголовок формы можно вывести через свойство Caption клиент-скрипта:
Form.Caption
svn
Профи


Вступление в Клуб: 04.02.2008
СообщениеПт Сен 07, 2012 15:02    Ответить с цитатой
Полезность: Нет оценки
Это надо на уровень Навигатора выносить
kai
Профи


Вступление в Клуб: 16.08.2012
СообщениеПн Сен 10, 2012 12:05    Ответить с цитатой
Полезность: 2
devor пишет:
Матвеев Евгений пишет:
Впечатляюще...
Вот если бы еще и время получать как нибудь... А то сами знаете, за один день компиляций может быть десятки... при непосредственно разработке искомой операции

Код:

select  max(uo.LAST_DDL_TIME), max(uo.TIMESTAMP) from
user_objects uo,
methods m
where
uo.OBJECT_NAME = m.package_name
and m.class_id = 'PR_CRED'
and m.short_name='NEW_DOG_N'


Коллеги, только не забудьте для удобства использовать макросы:

Код:
pragma macro( mBuildTimeStamp,
'declare
   v   varchar2(19);
Begin
   select max(uo.TIMESTAMP)
   into   v
   from   user_objects uo
   where   uo.OBJECT_NAME =
         (   select m.PACKAGE_NAME
            from   methods m
            where   m.class_id = [1]
               and   m.SHORT_NAME = [2]
         );
   [0]   := ''''''''||v||'''''''';
End;', process, substitute);


Если завести параметр, например, P_BUILD "Время сборки", то получить значение для него (во время компиляции) можно будет так:

Код:
P_BUILD   := &METHOD$||' '||&mBuildTimeStamp(&METHOD$CLASS, &METHOD$SNAME);


При компиляции в пакете будет строка типа:
Код:
P_BUILD := '[TYPE]::[METHOD] 2012-09-10:15:18:20';


А вообще в этом подходе есть и недостаток, из-за которого смысл использования на production схеме этого подхода imho теряется: мы через

Код:
Form1.Caption   = TxtMethBuild.Value


либо перетираем наименование операции другим значением (коротким наименованием и временем), либо удлиняем и его и затем, может оказаться, что оно не войдёт в заголовок экранной формы.
devor
Профи


Вступление в Клуб: 13.02.2012
СообщениеПн Сен 10, 2012 14:23    Ответить с цитатой
Полезность: Нет оценки
kai пишет:

А вообще в этом подходе есть и недостаток, из-за которого смысл использования на production схеме этого подхода imho теряется: мы через

Код:
Form1.Caption   = TxtMethBuild.Value


либо перетираем наименование операции другим значением (коротким наименованием и временем), либо удлиняем и его и затем, может оказаться, что оно не войдёт в заголовок экранной формы.

Лично я так и вовсе не вижу смысла в выводе даты компиляции в Навигатор. Непонятно, кому и зачем она там может понадобится.
Матвеев Евгений
Профи


Вступление в Клуб: 31.01.2012
СообщениеПн Сен 10, 2012 14:34    Ответить с цитатой
Полезность: Нет оценки
Как показала история смысл в этом есть... Если собственные разработки ведутся продолжительное время, используются отдельные хранилища операций... Например если писать на работе и дома... То будешь таскать на флэшке mdb файлы... Может возникнуть путаница с версиями... Накатывал ... не накатывал... Хорошо если систему контроля версий используешь... то можно концы найти... ну а если нет...
Имхо для меня по крайней мере ... Хотя и не претендую на абсолютную истину.
Кстати, господа, подскажите непосвященному... что такое production схема?
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПн Сен 10, 2012 14:50    Ответить с цитатой
Полезность: Нет оценки
Матвеев Евгений пишет:
...
Кстати, господа, подскажите непосвященному... что такое production схема?

Промышленная(боевая) схема
_________________
всегда есть как минимум 2 выхода
kai
Профи


Вступление в Клуб: 16.08.2012
СообщениеПн Сен 10, 2012 15:08    Ответить с цитатой
Полезность: Нет оценки
Евгений, под словом "prodaction" я подразумеваю схему, на которой работают пользователи, то есть рабочая схема, а не схема разработки. Конечно, с учётом того, что процессы разработки + тестирование по возможности отделены (!) от процесса эксплуатации. Wink)


Цитата:
Как показала история смысл в этом есть... Если собственные разработки ведутся продолжительное время, используются отдельные хранилища операций... Например если писать на работе и дома... То будешь таскать на флэшке mdb файлы... Может возникнуть путаница с версиями... Накатывал ... не накатывал... Хорошо если систему контроля версий используешь... то можно концы найти... ну а если нет...


Настоятельно рекомендую освоить в АРМе "Администратор проектов" возможность формирования текстового представления любых объектов словаря данных системы. Получать текстовое представление объектов (то есть в текстовых файлах описание всех свойств - 1-ый вариант) необходимо с целью дальнейшего анализа с помощью специальных программ (платные: Araxis Merge, Beyond Compare и пр - существуют и бесплатные). Текстовые представления могут быть получены запуском АРМа "Администратор проектов" в безынтерфейсном режиме (через командную строку).

2-ой вариант: сравнение объектов хранилища и схемы может быть осуществлено встроенным в АРМ "Администратор проектов" механизмом. см. pick.chm

Exclamation Перед накатом на схему всегда рекомендую проверять различия.

Ну, и в дополнение могу предложить программку, которая позволяет просматривать код из хранилищ, не запуская АРМ "Администратор проектов". Для её работы необходим .Net Framework 4.0.
pas
Профи


Вступление в Клуб: 20.11.2007
СообщениеПн Сен 10, 2012 15:13    Ответить с цитатой
Полезность: Нет оценки
а что за программка?
devor
Профи


Вступление в Клуб: 13.02.2012
СообщениеПн Сен 10, 2012 15:14    Ответить с цитатой
Полезность: Нет оценки
Матвеев Евгений пишет:
Как показала история смысл в этом есть... Если собственные разработки ведутся продолжительное время, используются отдельные хранилища операций... Например если писать на работе и дома... То будешь таскать на флэшке mdb файлы... Может возникнуть путаница с версиями... Накатывал ... не накатывал... Хорошо если систему контроля версий используешь... то можно концы найти... ну а если нет...
Имхо для меня по крайней мере ... Хотя и не претендую на абсолютную истину.
Кстати, господа, подск

Т.е. чтобы понять, "накатывал/не накатывал" придется открыть Навигатор и запустить операцию? А если десять операций? Или вообще экранной формы нет?
Для одной-двух операций проще непосредственно в Админе словаря глянуть. Ну, или посмотреть журнал изменения операций в Навигаторе.
А если операций много, то проще всего админом проектов сравнить свой mdb с эталонной схемой.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru