powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Переменные ХП
25 сообщений из 29, страница 1 из 2
Переменные ХП
    #40060946
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, пожалуйста, в какой таблице хранятся описания переменных (которые DECLARE VARIABLE) триггеров и ХП? В "RDB$PROCEDURE_PARAMETERS" и "RDB$FUNCTION_ARGUMENTS" лежат только входные/выходные параметры ХП и функций соответственно.
...
Рейтинг: 0 / 0
Переменные ХП
    #40060948
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax,

employee.fdb

Код: sql
1.
2.
3.
4.
5.
6.
7.
create or alter procedure DELETE_EMPLOYEE (
    EMP_NUM integer)
as
declare variable ANY_SALES integer;
BEGIN
    any_sales = 0;
    ...



rdb$procedures.rdb$procedure_source
Код: sql
1.
2.
3.
4.
DECLARE VARIABLE any_sales INTEGER;
BEGIN
	any_sales = 0;
...



rdb$procedures.rdb$procedure_blr

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
blr_version5,
blr_begin,
   blr_message, 0, 2,0,
      blr_long, 0,
      blr_short, 0,
   blr_message, 1, 1,0,
      blr_short, 0,
   blr_receive, 0,
      blr_begin,
         blr_declare, 0,0, blr_long, 0,
         blr_assignment,
            blr_null,
            blr_variable, 0,0,
...
...
Рейтинг: 0 / 0
Переменные ХП
    #40060949
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax,

не в каких. Это часть тела процедуры/функции/триггера
смотри в полях RDB$FUNTION_SOURCE RDB$PROCEDURE_SOURCE RDB$TRIGGER_SOURCE
...
Рейтинг: 0 / 0
Переменные ХП
    #40060952
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Печально. Я так понимаю, просить трекер о вынесении параметров в таблицу бесполезно.
...
Рейтинг: 0 / 0
Переменные ХП
    #40060956
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax,

конечно. В этой секции помимо локальных переменных могут быть подфункции/подпроцедуры, а также курсоры. А зачем они тебе собственно, делаешь аналог IBE?
...
Рейтинг: 0 / 0
Переменные ХП
    #40060976
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax
Подскажите, пожалуйста, в какой таблице хранятся описания переменных (которые DECLARE VARIABLE) триггеров и ХП? В "RDB$PROCEDURE_PARAMETERS" и "RDB$FUNCTION_ARGUMENTS" лежат только входные/выходные параметры ХП и функций соответственно.
Зачем оно тебе ?
В таблицах их нет, но есть в RDB$DEBUG_INFO.
Это системный блоб внутреннего формата, для него есть текстовый фильтр:
Код: sql
1.
2.
3.
set blob all;
select rdb$procedure_name, rdb$debug_info from rdb$procedures where ...;
select rdb$trigger_name, rdb$debug_info from rdb$triggers where ...;
...
Рейтинг: 0 / 0
Переменные ХП
    #40060986
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
fb30>isql employee
Database: employee, User: SYSDBA
SQL> set blob all;
SQL> select rdb$debug_info from rdb$procedures where rdb$procedure_name = 'DELETE_EMPLOYEE';

   RDB$DEBUG_INFO
=================
           1a:1ea
==============================================================================
RDB$DEBUG_INFO:
                Parameters:
                    Number Name                             Type
                --------------------------------------------------
                         0 EMP_NUM                          INPUT

                Variables:
                    Number Name
                -------------------------------------------
                         0 ANY_SALES
...
...
Рейтинг: 0 / 0
Переменные ХП
    #40060999
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу тестирование метаданных. Таблиц, ХП, функций и т.д. Сейчас вот решил проверять, где в параметрах и переменных используются домены, а где тип SQL.

hvlad - спасибо за наводку, буду смотреть через DEBUG_INFO.

Симонов Денис, про подпроцедуры и подфункции понятно. Тогда получается, что если они есть в ХП, то их нельзя увидеть в RDB$PROCEDURES? Конечно разработчикам виднее, и это наверно мало кому нужно на самом деле, но имхо, было бы логично вынести все эти вложенные процедуры/функции с параметрами в RDB$PROCEDURES/RDB$FUNCTIONS, в том числе и параметры в отдельные таблицы.
...
Рейтинг: 0 / 0
Переменные ХП
    #40061006
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMaxСимонов Денис, про подпроцедуры и подфункции понятно. Тогда получается, что если они есть в ХП, то их нельзя увидеть в RDB$PROCEDURES?

да, конечно. Кстати процедуры и функции пакетов там есть
...
Рейтинг: 0 / 0
Переменные ХП
    #40061012
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax
решил проверять, где в параметрах и переменных используются домены, а где тип SQL.
rdb$dependencies не достаточно для этого ?
...
Рейтинг: 0 / 0
Переменные ХП
    #40061022
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad
rdb$dependencies не достаточно для этого ?

А чем эта таблица может помочь? Там же нет ни имен переменных, ни зависимостей, если это это тип SQL.
...
Рейтинг: 0 / 0
Переменные ХП
    #40061043
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CyberMax
Сейчас вот решил проверять, где в параметрах и переменных используются домены, а где тип SQL.


Есть компоненты

https://www.clevercomponents.com/products/dbcvcl/index.asp

В них есть метод TIbExParser.ParseLocalVariables, куда можно впихнуть проверку.
...
Рейтинг: 0 / 0
Переменные ХП
    #40061050
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax
hvlad
rdb$dependencies не достаточно для этого ?

А чем эта таблица может помочь? Там же нет ни имен переменных, ни зависимостей, если это это тип SQL.
Увидишь процедуры\триггеры, зависящие от доменов. Не то ?
...
Рейтинг: 0 / 0
Переменные ХП
    #40061084
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad
Увидишь процедуры\триггеры, зависящие от доменов. Не то ?

Не то. Мне наоборот, надо найти процедуры/триггеры, которые не используют домены.
...
Рейтинг: 0 / 0
Переменные ХП
    #40061086
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggreggory,

Не подходит. Мне надо это в PSQL.

P.S. Спасибо за ответы, где смотреть понял, этого достаточно.
...
Рейтинг: 0 / 0
Переменные ХП
    #40061100
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMaxМне наоборот, надо найти процедуры/триггеры, которые не используют домены.

У них число зависимостей от доменов будет нулевым. Логично?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Переменные ХП
    #40061101
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
У них число зависимостей от доменов будет нулевым. Логично?..

Нет. Если пять параметров, где четыре с доменом, а один - без, это ничего не даст.
...
Рейтинг: 0 / 0
Переменные ХП
    #40061104
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда переформулируй свою хотелку, поскольку "не используют домены" это как раз даст.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Переменные ХП
    #40061105
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax,

ты хочешь чтобы все внутренние переменные использовали домены? Ох, зря ты это...
...
Рейтинг: 0 / 0
Переменные ХП
    #40061110
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще да, желание заменить все стандартные типы
(даже для переменных) доменами - это нечто новое в
отечественном лисапедостроении, о таком ещё не слышал...

P.S. AFAIU, даже без RDB$DEBUG_INFO это не
сильно сложно получить из blr.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Переменные ХП
    #40061111
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно, он наивно надеется, что ALTER DOMAIN автомагически поменяет типы всех переменных
во всех процедурах.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Переменные ХП
    #40061114
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
CyberMax,

ты хочешь чтобы все внутренние переменные использовали домены? Ох, зря ты это...

Что здесь не так? В доках нет никаких указаний, что так делать не надо и наоборот. Разве это не на усмотрение разработчика?
...
Рейтинг: 0 / 0
Переменные ХП
    #40061116
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Вы так говорите, будто я только вчера сел изучать fb. Я прекрасно знаю, что и как происходит при изменении домена.
...
Рейтинг: 0 / 0
Переменные ХП
    #40061117
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

ну, недавно видел базу, где всего штук 20 доменов, и они все "просто домены", т.е. без условий, ограничений, дефолтов и прочего.
И там вот такое:
CREATE DOMAIN D_BIGINT AS BIGINT;
CREATE DOMAIN D_DATE AS DATE;
и т.д.

Что интересно - в ЯП типа дельфей редко когда увидишь объявление типа
type
MyInteger = integer;
и дальше все целые числа типа MyInteger. Понятно что в дельфях ограничения на тип не навесишь, а тут запросто.
Но всё равно.
...
Рейтинг: 0 / 0
Переменные ХП
    #40061122
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
09.04.2021 17:36, kdv пишет:
> Что интересно - в ЯП типа дельфей редко когда увидишь объявление типа
> type
> MyInteger = integer;

если это проперти компонента, то очень часто.
на такой тип вешается свой редактор свойств (Property Editor).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Переменные ХП
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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