powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как узнать о существовании Хранимой Процедуры или Таблицы?
5 сообщений из 5, страница 1 из 1
Как узнать о существовании Хранимой Процедуры или Таблицы?
    #32254974
Фотография CrazyMihey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините, а никто не подскажет, как по-умному узнать, существует ли Procedure в Базе данных, перед тем, как сделать Drop ?\r
Я ваяю Script , который создаёт/изменяет структуру Базы, при этом, если его исполнение не доходит до конца ( Syntax Error , etc...), то часть хранимых процедур сохраняется в Базе (при повторном запуске Script а их надо удалить и создать заново, возможно, с другими аргументами, поэтому Alter не катит), а часть не сохраняется (и вызывает прерывание выполнения Script а в следующий раз уже при попытке Drop , который находится, ессно, в начале Script а).\r
Пробовал в этом же Script е создать ещё одну процедурку:\r
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
\r
Set Term !! ;\r
\r
Create Procedure SP_Drop_Procedure( ProcedureName Char(  31  ) Character Set UniCode_FSS )\r
 as\r
 Declare Variable C Integer;\r
 BEGIN                   /* SP_Drop_Procedure */ \r
  Select Count( RDB$Procedure_Name )\r
   From RDB$Procedures\r
   Where RDB$Procedure_Name = :ProcedureName\r
   InTo :C;\r
  IF ( C >=  1  )\r
   then Drop Procedure :ProcedureName; < ----------------------------------------------------\r
 
  Commit;\r
 END !!                  /* SP_Drop_Procedure */ \r
\r
Set Term ; !!\r
\r
Так ругается на команду Drop в выделенной строке, по всей видимости. -:(\r
Подскажите, Plz, Знающие Люди, наверняка я не первый, у которого такая фишка возникает, к тому же, примерно такая тема тут уже всплывала, но подходящего решения я там не нашёл...
...
Рейтинг: 0 / 0
Как узнать о существовании Хранимой Процедуры или Таблицы?
    #32255312
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там же по мойму ясно сказано, что в одном скрипте проверить наличие таблицы или процы и создать ее -- нельзя
только через клиента.
...
Рейтинг: 0 / 0
Как узнать о существовании Хранимой Процедуры или Таблицы?
    #32255338
VictorKr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На самом деле в хранимке создавать удалять таблицы и процедуры нельзя. Но можно это дело обойти. В ФБ 1.5 пишешь

execute script 'drop table attribute_work;'

И все работает...
...
Рейтинг: 0 / 0
Как узнать о существовании Хранимой Процедуры или Таблицы?
    #32255339
VictorKr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь Execute statement
...
Рейтинг: 0 / 0
Как узнать о существовании Хранимой Процедуры или Таблицы?
    #32255785
Фотография CrazyMihey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To StarWind : Да уж, похоже, что придётся ваять ещё одну прогу, которая будет изменять структуру Базы...

To VictorKr : К сожалению, в V6.5.0.28 это не прокатило - Token unknown: Script , Statement .
Можно использовать только Execute Procedure .
Может всё-таки можно как-нибудь проверить факт существования Procedure без создания ещё одной Procedure , раз уж из неё - никак, или придётся на FB переходить? Кстати, мне его и достать-то негде... Но, если это реально хорошая вещь, то базы туда перетащу без вопросов.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как узнать о существовании Хранимой Процедуры или Таблицы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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