powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Предложение по редактору процедур
25 сообщений из 28, страница 1 из 2
Предложение по редактору процедур
    #38590750
Сисдба Мастеркеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть одна мысль. А может, наоборот, меня вразумят, как надо правильно делать.

Пишу я, скажем, процедуру большую. В процессе написания она долгое время находится в некомпилируемом состоянии.
Чтобы написанное не потерялось, я время от времени жму синюю кнопку, чтобы закомментарить весь код, компилирую, потому жму красную, чтобы раскомментарить.

Как бы, неудобно несколько кнопок жать. К тому же, красная и синяя не имеют клавиатурных шорт-катов, приходится мышкой в них попадать.

Можно, конечно, сохранять текст в файл. Но тут минус - надо где-то выделить место, каталог отдельный, чтобы в куче не валялись. Каталог этот надо будет указывать при сохранении, имя писать, да и кучка файлов ненужных образуется.

Было бы здорово, если бы Эксперт где-то за щекой (в рег.информации базы ?) хранил "Черновик" процедуры. И сделать шорт-кат для сохранения текста процедуры (или триггера, кстати) в черновик. И возможность вернуться к варианту, который в черновике.

--

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38590844
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сисдба МастеркеевичИ сделать шорт-кат для сохранения текста процедуры (или триггера, кстати) в черновик. И возможность вернуться к варианту, который в черновике.+1
Только без шорткатов, пусть просто в фоновом режиме периодически туда записывает. Аки ворд.
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38590978
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сисдба Мастеркеевич,

+1
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38591054
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сисдба Мастеркеевич,

В редакторе процедур правой кнопкой в редакторе кода жмакни. Видишь там первые два пункта?
Не надо ничего комментировать/раскомментировать. Папку для загрузки/сохранения можно настроить в регистрационной записи БД.
Можно, конечно, и таймер к этому делу прикрутить, но вот будет ли в этом большая польза?
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38591080
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertВ редакторе процедур правой кнопкой в редакторе кода жмакни. Видишь там первые два пункта?Ух ты, гут!.. А чё в редакторе stored-функций такого нету ?
IBExpertМожно, конечно, и таймер к этому делу прикрутить, но вот будет ли в этом большая польза?Будет. Ибо тогда вообще не нужно беспокоиться, что чего-то потеряешь.
Главное - сохранять в фоновом режиме с низким приоритетом, дабы не мешать вводу текста.
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38591435
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидУх ты, гут!.. А чё в редакторе stored-функций такого нету ?

Там много чего еще нет.
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38591736
Сисдба Мастеркеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert пишет:

> В редакторе процедур правой кнопкой в редакторе кода жмакни. Видишь там
> первые два пункта? Не надо ничего комментировать/раскомментировать. Папку
> для загрузки/сохранения можно настроить в регистрационной записи БД.

В принципе, оно :) Чесслово, раньше не было :)
Нажал CTRL+ALT+SHIFT+L, на клавиши повесил - красота ...

> Можно, конечно, и таймер к этому делу прикрутить, но вот будет ли в этом
> большая польза?

Не, я против таймера. Не надо автоматики, по крайней мере, против тупого периодического сохранения.

Разве что, по принципу "когда N секунд ничего не вводится, текст сохраняется"

PS: В очередной раз убеждаюсь, что в Эксперте есть почти-почти всё. Спасибо за отличный инструмент.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38591788
Сисдба Мастеркеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сисдба Мастеркеевич пишет:

> Не, я против таймера. Не надо автоматики, по крайней мере, против тупого
> периодического сохранения.

> Разве что, по принципу "когда N секунд ничего не вводится, текст
> сохраняется"

Еще подумал. Нет, не надо автоматики.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38591924
Сисдба Мастеркеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert пишет:

> В редакторе процедур правой кнопкой в редакторе кода жмакни. Видишь там
> первые два пункта?

Кстати, в SQL-редакторе эти пункты недоступны. Какие-то весомые причины есть для этого ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38591957
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertВ редакторе процедур правой кнопкой в редакторе кода жмакни. Видишь там первые два пункта?
Не надо ничего комментировать/раскомментировать. Папку для загрузки/сохранения можно настроить в регистрационной записи БД.
Можно, конечно, и таймер к этому делу прикрутить, но вот будет ли в этом большая польза?Лучше уж тогда прикрутить систему контроля версий, тот же меркуриал, например. Жмакнул пипку и оно еще кроме сохранения в указанный каталог делает еще и что-то типа
hg ci -m "AutoCommit"
hg update
ну вестимо в каталоге создать предварительно репозитарий.

Даже проще, если можно будет навесить на действия в меню еще и доп команды то можно и не прикручивать более ничего.
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38591967
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сисдба МастеркеевичКстати, в SQL-редакторе эти пункты недоступны. Какие-то весомые причины есть для этого ?


Там особой необходимости нет, переключился на другой запрос - текущий сохранился. Перед выполнением - тоже сохраняется.
Не вижу особого смысла.
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38591979
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyЛучше уж тогда прикрутить систему контроля версий, тот же меркуриал, например.

Не очень понял, как сохранение черновика связано с системой контроля версий.
После успешной компиляции - понимаю, а зачем черновик в VCS пихать - не понимаю.
Для прикручивания VCS можно задействовать механизм event blocks. Это на закладке Blocks в DB Explorer. Там по правой кнопке можно создать блок на одно из перечисленных событий. Если нужна обработка какого-то события, которого там нет, предлагайте - добавить обработку события не сложно, в принципе.
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38591994
Сисдба Мастеркеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert пишет:

> Там особой необходимости нет, переключился на другой запрос - текущий
> сохранился. Перед выполнением - тоже сохраняется

А ну да, точно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38592007
Сисдба Мастеркеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert пишет:

> Для прикручивания VCS можно задействовать механизм event blocks. Это на
> закладке Blocks в DB Explorer. Там по правой кнопке можно создать блок на
> одно из перечисленных событий. Если нужна обработка какого-то события,
> которого там нет, предлагайте - добавить обработку события не сложно, в
> принципе

А можно пример блока, срабатывающего, скажем, после компиляции процедуры ?

Я попробовал: выбрал в контекстном меню "create/edit event block", выбрал "After Metadata Change", появился редактор блока.
Нажал над редактором "Event: After Metadata Change", появился пример блока.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
-- Below is a template/example of After Metadata Change block
execute ibeblock (
  DatabaseID integer comment 'Internal ID (within IBExpert) of the active database',
  StatementList variant comment 'Array of commited statements',
  Sender integer comment 'Sender: 0 - object editors; 1 - SQL Editor; 2 - Script Executive'
)
as
begin
  Exit;

  foreach (StatementList as StmtSource key StmtID skip nulls) do
  begin
    FileName = 'W:\Stmt_' || StmtID || '.sql';
    ibec_SaveToFile(FileName, StmtSource, 0);
  end;
end


Скопировал этот текст в source, поставил свой путь в файлу. Сохранил. Блок появился в списке блоков/скриптов.
Попробовал скомпилировать процедуру - ничего в указанном каталоге не появилось.
Попробовал "create procedure ..." из SQL-редактора - тоже никакого файла не создалось.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38592013
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сисдба Мастеркеевич,

Попробуй Exit убрать. Чем черт не шутит - вдруг заработает?
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38592020
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertСисдба Мастеркеевич,

Попробуй Exit убрать. Чем черт не шутит - вдруг заработает?



Блин, ну зачем же так, я же сегодня больше работать не смогу.
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38592024
Сисдба Мастеркеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert пишет:

> Попробуй Exit убрать. Чем черт не шутит - вдруг заработает?

Смешно :)

Убрал - все равно не работает.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38592035
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сисдба МастеркеевичУбрал - все равно не работает.


Ну не то чтобы совсем не работает... Он таки вызывается, а вот StatementList почему-то пустой. Сейчас буду смотреть, почему.
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38592042
Сисдба Мастеркеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сработало, но только из SQL-редактора.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
-- Below is a template/example of After Metadata Change block
execute ibeblock (
  DatabaseID integer comment 'Internal ID (within IBExpert) of the active database',
  StatementList variant comment 'Array of commited statements',
  Sender integer comment 'Sender: 0 - object editors; 1 - SQL Editor; 2 - Script Executive'
)
as
begin
  ibec_MessageDlg('123',0,1);

  foreach (StatementList as StmtSource key StmtID skip nulls) do
  begin
    ibec_MessageDlg('StmtID = ' || StmtID,0,1);
    ibec_MessageDlg('StmtSource = ' || StmtSource,0,1);
    FileName = 'C:\Mikes\IBE_KPKG_DEV\Stmt_' || StmtID || '.sql';
    ibec_SaveToFile(FileName, StmtSource, 0);
  end;
end


Из SQL-редактора все работает хорошо.
Из редактора процедур выводися только 1-й MessageDlg
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38592048
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertЕсли нужна обработка какого-то события, которого там нет, предлагайте - добавить обработку события не сложно, в принципе.Надо подумать. Просто мне пришла в голову мысль, я ее озвучил. В дельфи я без версионника шагу не ступлю. По метаданным базы фиксирую вечером на автомате результат работы всех программистов за день, это хорошо, но не всегда достаточно.

может и правда обработать "Event: After Metadata Change". в ИБЕскрипте же можно вызвать произвольную команду операционки или программу?
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38592069
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сисдба МастеркеевичИз редактора процедур выводися только 1-й MessageDlg


Исправил.
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38592073
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevskyв ИБЕскрипте же можно вызвать произвольную команду операционки или программу?

Можно: http://www.ibexpert.net/ibe/index.php?n=Doc.IbecExec
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38592092
Сисдба Мастеркеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert пишет:

> Исправил.

Да, теперь доходит до сохранения. Но StmtID всегда = 0.
Получается, чтобы раскидать процедуры (или другие объекты) по разным файлам, надо парсить StmtSource на предмет имени объекта ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38592102
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сисдба МастеркеевичДа, теперь доходит до сохранения. Но StmtID всегда = 0.
Получается, чтобы раскидать процедуры (или другие объекты) по разным файлам, надо парсить StmtSource на предмет имени объекта ?


StmtID - это просто индекс для итератора. Так что да, парсить нужно.
...
Рейтинг: 0 / 0
Предложение по редактору процедур
    #38592155
Сисдба Мастеркеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Эксперте ведь внутри парсер уже есть, он ведь знает, какой именно объект затронут. Может быть, как-то передавать имя объекта в блок ?

Кстати, возвращаясь к теме - никак не видно, что "Быстрое сохранение" произошло, как-то бы это дело индицировать.
Если в процессе сохранения произойдет ошибка, Эксперт сообщает об этом. Так что, если вызывать пункт из контекстного меню, то можно быть уверенным, что всё надалось и сохранилось.
Но если нажимать шорт-кат на клавиатуре, то непонятно, нажалось или нет, сохранилось или нет.

Сообщение выводить - наверное не лучший вариант, это ведь "быстрое" сохранение.

Можно, например, курсор на секунду делать HourGlass, потом обратно Default.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Предложение по редактору процедур
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]