Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Переменные ХП / 25 сообщений из 29, страница 1 из 2
09.04.2021, 11:08
    #40060946
CyberMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные ХП
Подскажите, пожалуйста, в какой таблице хранятся описания переменных (которые DECLARE VARIABLE) триггеров и ХП? В "RDB$PROCEDURE_PARAMETERS" и "RDB$FUNCTION_ARGUMENTS" лежат только входные/выходные параметры ХП и функций соответственно.
...
Рейтинг: 0 / 0
09.04.2021, 11:15
    #40060948
kdv
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
09.04.2021, 11:17
    #40060949
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные ХП
CyberMax,

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

конечно. В этой секции помимо локальных переменных могут быть подфункции/подпроцедуры, а также курсоры. А зачем они тебе собственно, делаешь аналог IBE?
...
Рейтинг: 0 / 0
09.04.2021, 12:40
    #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
09.04.2021, 12:52
    #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
09.04.2021, 13:51
    #40060999
CyberMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные ХП
Пишу тестирование метаданных. Таблиц, ХП, функций и т.д. Сейчас вот решил проверять, где в параметрах и переменных используются домены, а где тип SQL.

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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