как проверить наличие ХП в базе

Модераторы: kdv, CyberMax

Ответить
ssb777
Сообщения: 5
Зарегистрирован: 08 авг 2007, 17:40

как проверить наличие ХП в базе

Сообщение ssb777 » 08 авг 2007, 17:52

Заранее извиняюсь, наверное вопрос ламерский и уже не раз обсуждался, но я ответа не нашел :(

Как построить запрос к базе на предмет проверки наличия ХП с нужным именем?

P.S. перед обращением из клиенской программы к ХП нужно проверить есть ли такая, и если нет на лету создать...

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 08 авг 2007, 18:11

- CREATE OR ALTER PROCEDURE MYPROC ...
- RECREATE PROCEDURE MYPROC ...
- select 1 from rdb$procedures where rdb$procedure_name = 'MYPROC';

На выбор в зависимости от условий и версии сервера.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: как проверить наличие ХП в базе

Сообщение Dimitry Sibiryakov » 09 авг 2007, 08:38

ssb777 писал(а):на лету создать...
А потом на лету убить того, кто придумал такую схему. Никогда и ничего нельзя в птичке создавать "на лету". Изменение метаданных - прерогатива DBA и обычно проводится в монопольном режиме.

ssb777
Сообщения: 5
Зарегистрирован: 08 авг 2007, 17:40

Сообщение ssb777 » 09 авг 2007, 11:31

WildSery писал(а): - select 1 from rdb$procedures where rdb$procedure_name = 'MYPROC';
Большое спасибо, то что надо
WildSery писал(а):На выбор в зависимости от условий и версии сервера.
IBase 6, клиентская программа на Delphi.
Dimitry Sibiryakov писал(а): А потом на лету убить того, кто придумал такую схему.
"на лету" - это сильно сказано, в общем после обновления версии клиенской программы, при ПЕРВОМ обращении к нужной ХП (которой скорее всего нет в базе) эта нужная ХП ОДИН ЕДИНСТВЕННЫЙ РАЗ будет создана и в дальнейшем просто будет использоваться.
Я понимаю, что, лучше бы руками добавить ее в базу, но тут имеются сложности чисто организационного характера, клиенскую программу я по E-Mail передам и люди ее сами обновят, тут никакой квалификации особой не нужно делов то EXE файл заменить, а в базу лазить чужими руками (объясняя пользователю по телефону что и как делать) уж увольте :(

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Сообщение stix-s » 09 авг 2007, 11:44

ssb777 писал(а):
WildSery писал(а): - select 1 from rdb$procedures where rdb$procedure_name = 'MYPROC';
Большое спасибо, то что надо
WildSery писал(а):На выбор в зависимости от условий и версии сервера.
IBase 6, клиентская программа на Delphi.
Dimitry Sibiryakov писал(а): А потом на лету убить того, кто придумал такую схему.
"на лету" - это сильно сказано, в общем после обновления версии клиенской программы, при ПЕРВОМ обращении к нужной ХП (которой скорее всего нет в базе) эта нужная ХП ОДИН ЕДИНСТВЕННЫЙ РАЗ будет создана и в дальнейшем просто будет использоваться.
Я понимаю, что, лучше бы руками добавить ее в базу, но тут имеются сложности чисто организационного характера, клиенскую программу я по E-Mail передам и люди ее сами обновят, тут никакой квалификации особой не нужно делов то EXE файл заменить, а в базу лазить чужими руками (объясняя пользователю по телефону что и как делать) уж увольте :(
Передавай вместе с новой клиентской частью скрипт обновления базы с батником или в Upgrade-р зашей - сначала бакап базы, затем ее обновление - при удаче обновления БД замена клиентской части

Attid
Спец
Сообщения: 377
Зарегистрирован: 14 ноя 2006, 09:58

Сообщение Attid » 09 авг 2007, 13:50

странно что никто про IBase 6 ничего не сказал.

выкинь её и ставь птичку.
на сайте есть описание почему (там много глюков исправленых в птички либо в последних версиях IBasе).

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Сообщение stix-s » 09 авг 2007, 13:59

Attid писал(а): странно что никто про IBase 6 ничего не сказал.
Потому что я уже привык к ответам - это менять нельзя (нехочу, не буду)!

Attid
Спец
Сообщения: 377
Зарегистрирован: 14 ноя 2006, 09:58

Сообщение Attid » 09 авг 2007, 16:01

stix-s писал(а): Потому что я уже привык к ответам - это менять нельзя (нехочу, не буду)!
ну у чувака погстов всего 2 штуки , может он еще не в курсе . .

ssb777
Сообщения: 5
Зарегистрирован: 08 авг 2007, 17:40

Сообщение ssb777 » 10 авг 2007, 10:59

stix-s писал(а):
Attid писал(а): странно что никто про IBase 6 ничего не сказал.
Потому что я уже привык к ответам - это менять нельзя (нехочу, не буду)!
Есть такая французкая поговорка (за точность не ручаюсь)
Лучшее - враг хорошего

ну или вольный славянский вариант
Пока оно работает - НЕ ТРОГАЙ!


кстати о птичках :)
Attid писал(а):на сайте есть описание почему (там много глюков исправленых в птички либо в последних версиях IBasе).
если не трудно можно ссылочку на описание...

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 10 авг 2007, 11:29

ssb777 писал(а):Пока оно работает - НЕ ТРОГАЙ!
Что ж ты сам не следуешь своему совету?
Эта "истина" как правило неверна. Любая штукенция нуждается в обслуживании и зачастую в доработке.
Все версии перечислены тут.

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Сообщение stix-s » 10 авг 2007, 11:29

ssb777 писал(а):

кстати о птичках :)
Attid писал(а):на сайте есть описание почему (там много глюков исправленых в птички либо в последних версиях IBasе).
если не трудно можно ссылочку на описание...
по версиям - http://ibase.ru/devinfo/allversions.htm
по багам - релиз ноты или в разделе Документация на данном сайте
ЗЫ
Пока писал, уже ответили :)

Ответить