powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
20 сообщений из 20, страница 1 из 1
NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
    #39072113
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FB 2.1.5 x32, Win7 x64

Создаю базу скриптом через IBX (TIBScript)
у неё в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE в описании процедур (RDB$PROCEDURE_PARAMETERS) стоит NULL
а у рабочей базы, которая создана при помощи IBExpert - стоит 0.

Чем это грозит?
...
Рейтинг: 0 / 0
NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
    #39072128
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ничем. С точки зрения ядра ноль и нулл равнозначны.
...
Рейтинг: 0 / 0
NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
    #39072133
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747,

Тем, что в процедуру может залететь 0 и проверка для параметра на IS NULL может обломится.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
CREATE PROCEDURE P(I integer=0)
returns (A integer)
as
begin
  if (I is NULL) then A=1; else A=0;
  suspend;
end


Далее:

Код: plsql
1.
2.
3.
4.
5.
6.
 i=null;
 SELECT A FROM P(:I) into :a;  -- даст 1 
 i=100;
 SELECT A FROM P(:I) into :a;  -- даст 0 
 
 SELECT A FROM P into :a;  -- всегда вернет 1, т.к. вместо опущенного параметра подставится его значение по умолчанию
...
Рейтинг: 0 / 0
NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
    #39072134
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitr,

А, понял, это я не в ту сторону подумал...
...
Рейтинг: 0 / 0
NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
    #39072142
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrничем. С точки зрения ядра ноль и нулл равнозначны.Только не в блобах.
Наличие нулей в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE выглядит весьма странно
...
Рейтинг: 0 / 0
NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
    #39072143
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747у рабочей базы, которая создана при помощи IBExpert - стоит 0.

Рассказывай как ты сумел занести 0 в BLOB поле.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
    #39072155
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, это я про другое подумал :-) Ноль в блобе это весьма оригинально.
...
Рейтинг: 0 / 0
NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
    #39072175
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
1) Создаю базу при помощи TIBScript (IBX) из скрипта
2) IBExpert-ом выгружаю метаданные, сравниваю со скриптом - разница только кое где в порядке триггеров.
3) В IBExpert сравниваю базу (Databse Comparer) со скриптом, на основе которого она сделана - получаю скрипт изменения на 24/200 процедур и на 101 триггер из 367.
4) Выполняю этот скрипт, получаю базу с таким вот RDB$PROCEDURE_PARAMETERS
...
Рейтинг: 0 / 0
NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
    #39072200
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747получаю скрипт изменения на 24/200 процедур и на 101 триггер из 367.
А посмотреть этот скрипт глазками на предмет прямой модификации таблицы
RDB$PROCEDURE_PARAMETERS?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
    #39072247
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Никаких потрохов, только стандартная выгрузка метаданных IBExpert'a, т.е.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
/******************************************************************************/
/***                           Stored Procedures                            ***/
/******************************************************************************/

CREATE OR ALTER PROCEDURE APPEND_AUTO_WARE_DISC (
    IWARECODE INTEGER,
    ...
    IDELETEDASPVALUE INTEGER)
RETURNS (
    ERRORCODE INTEGER)
AS
BEGIN
  SUSPEND;
END^
...
Рейтинг: 0 / 0
NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
    #39072257
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747только стандартная выгрузка метаданных IBExpert'a
Я не про этот скрипт говорю, а тот, после применения которого в блобы попадает ноль.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
    #39072294
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЯ не про этот скрипт говорю, а тот, после применения которого в блобы попадает ноль.
Нет, там нет никаких потрохов тоже, только
Код: sql
1.
ALTER PROCEDURE APPEND_AUTO_WARE_DISC (
...
Рейтинг: 0 / 0
NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
    #39072298
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747Нет, там нет никаких потрохов тоже
Тогда давай минимальный воспроизводимый пример для isql в результате которого в эти блобы
попадёт ноль. Сюда или сразу в трекер.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
    #39072619
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

ошибочка вышла.
Такая ситуация если запущен ФБ 2.5.1 с gds32.dll 6.3.4.18393 (версия продукта вообще 2.1.4.18393)
Вот в этом случае заполняется.

А вот если с той же длл работает ФБ 2.1.5 - то никаких 0 в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE

Полагаю, баг на это дело заводить смысла нет?
...
Рейтинг: 0 / 0
NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
    #39072685
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747,

чушь какая-то, извини за прямоту
...
Рейтинг: 0 / 0
NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
    #39072738
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747,

С 2.5.4 или 2.5.5 пробовал ?
...
Рейтинг: 0 / 0
NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
    #39073312
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, эти параметры процедур - это всё фигня.
с чего все началось:
Есть базы "эталонные", новые (UTF). Каким именно способом создавались - IBScript или IBExpert - история не помнит.

Делаю конвертер из старых баз (Win1251) в новые.
Выгружаю IBExpert'ом метаданные из эталонной базы.
сравниваю метаданные с эталонной - нет различий.

создаю IBScript'ом базу-пустышку по этим метаданным, переливаю данные из старой базы в новую.

Затем сравниваю IBExpert'ом новую базу и эталонную (аналогично - новую базу и скрипт) - IBExpert предлагает часть хранимок (24 из 200) и триггеров (101/367) изменить.

Если согласиться и изменить, то в дальнейшем никаких изменений при сравнении баз не находит.

Стал крутить и так и сяк, полез в метаданные.
Обнаружил, что в эталонной базе у 83 из 1467 в RDB$FIELDS RDB$FIELD_SUB_TYPE is null
а в созданной при помощи IBScript'а - 211/1471

Например, для такого домена как
Код: sql
1.
CREATE DOMAIN FDATE5 AS DATE;

в эталонной стоит 0, а в новой - null
...
Рейтинг: 0 / 0
NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
    #39073315
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747RDB$FIELDS RDB$FIELD_SUB_TYPE
А вот для этого поля это нормально.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
    #39073698
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Непонятно - если при создании домена у него сабтайп- нулл, в каком случае (если допустить что специально не проставляется нигде руками 0) у него проставится 0?
...
Рейтинг: 0 / 0
NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
    #39073702
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747,

в случае работы старого сервера
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / NULL в RDB$DEFAULT_VALUE и RDB$DEFAULT_SOURCE у RDB$PROCEDURE_PARAMETERS?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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