SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » UDR selective procedure - not empty result set
UDR selective procedure - not empty result set [сообщение #495] Tue, 06 September 2022 16:18 Переход к предыдущему сообщению
shalamyansky в настоящее время не в онлайне  shalamyansky
Сообщений: 150
Зарегистрирован: August 2022
Senior Member
Реализую UDR селективную процедуру на Delphi. Как пример беру pdf статью Дениса Симонова "Написание UDR Firebird на Pascal", спасибо ему. Для иллюстрации топика хорошо подходит приведенная там процедура gen_rows.

Заметил следующее: если результирующий набор должен быть пустым, и это по идее должно случиться, когда TGenRowsProcedure.open возвращает nil в качестве result set, на самом деле Firebird возвращает 1 запись, заполненную null'ами, row_count = 1.

create function test_empty_gen_rows
returns
    bigint
as
    declare variable n integer;
begin
    select
        n
      from
        gen_rows( null, null )
      into
        :n
    ;
    return row_count;
end

Result = 1
По-моему, это ошибочное поведение, нет?

Firebird 4.0.2.2816(64), Windows
 
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Предыдущая тема: логгирование работы
Следующая тема: клиент ФБ 4.0.1
Переход к форуму:
  


Текущее время: Sun Nov 24 09:12:04 GMT+3 2024

Общее время, затраченное на создание страницы: 0.01119 секунд