Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Матвеев Евгений Профи
Вступление в Клуб: 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" я подразумеваю схему, на которой работают пользователи, то есть рабочая схема, а не схема разработки. Конечно, с учётом того, что процессы разработки + тестирование по возможности отделены (!) от процесса эксплуатации. )
Цитата: | Как показала история смысл в этом есть... Если собственные разработки ведутся продолжительное время, используются отдельные хранилища операций... Например если писать на работе и дома... То будешь таскать на флэшке mdb файлы... Может возникнуть путаница с версиями... Накатывал ... не накатывал... Хорошо если систему контроля версий используешь... то можно концы найти... ну а если нет... |
Настоятельно рекомендую освоить в АРМе "Администратор проектов" возможность формирования текстового представления любых объектов словаря данных системы. Получать текстовое представление объектов (то есть в текстовых файлах описание всех свойств - 1-ый вариант) необходимо с целью дальнейшего анализа с помощью специальных программ (платные: Araxis Merge, Beyond Compare и пр - существуют и бесплатные). Текстовые представления могут быть получены запуском АРМа "Администратор проектов" в безынтерфейсном режиме (через командную строку).
2-ой вариант: сравнение объектов хранилища и схемы может быть осуществлено встроенным в АРМ "Администратор проектов" механизмом. см. pick.chm
Перед накатом на схему всегда рекомендую проверять различия.
Ну, и в дополнение могу предложить программку, которая позволяет просматривать код из хранилищ, не запуская АРМ "Администратор проектов". Для её работы необходим .Net Framework 4.0. |
|
 |
pas Профи
Вступление в Клуб: 20.11.2007
|
Пн Сен 10, 2012 15:13   |
|
Полезность: Нет оценки
|
а что за программка? |
|
 |
devor Профи
Вступление в Клуб: 13.02.2012
|
Пн Сен 10, 2012 15:14   |
|
Полезность: Нет оценки
|
Матвеев Евгений пишет: | Как показала история смысл в этом есть... Если собственные разработки ведутся продолжительное время, используются отдельные хранилища операций... Например если писать на работе и дома... То будешь таскать на флэшке mdb файлы... Может возникнуть путаница с версиями... Накатывал ... не накатывал... Хорошо если систему контроля версий используешь... то можно концы найти... ну а если нет...
Имхо для меня по крайней мере ... Хотя и не претендую на абсолютную истину.
Кстати, господа, подск |
Т.е. чтобы понять, "накатывал/не накатывал" придется открыть Навигатор и запустить операцию? А если десять операций? Или вообще экранной формы нет?
Для одной-двух операций проще непосредственно в Админе словаря глянуть. Ну, или посмотреть журнал изменения операций в Навигаторе.
А если операций много, то проще всего админом проектов сравнить свой mdb с эталонной схемой. |
|
 |
|