powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / дефолтнае значения в дараметрах хранимых процедур
5 сообщений из 5, страница 1 из 1
дефолтнае значения в дараметрах хранимых процедур
    #39612191
svd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.

для апдейта базы даннх потребовалось сделать механизм рекомпиляции процедур и триггеров (к сожаленую, в Firebird нет команды "recompile"). И наткнулся на следующую загадку приподы, которую никак объяснить не могу:
В структуре данных имеется процедура с параметрами по умолчанию и коллега использует такую возможность в другой процедуре.
При компиляции в IBExpert никаких проблем не возникает ни при SQL-Statement, ни при SQL-Executive.

В Delphi-коде выкидывает следующую ошибку:

Код: plaintext
1.
2.
3.
4.
Invalid token.
SQL error state =07001
Invalid request BLR at offset 98.
Input parameter mismatch for procedure SP_CHECK_ARTIKEL_N.
Error while parsing procedure SP_CHECK_EINL_NL's BLR.



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
CREATE OR ALTER PROCEDURE SP_CHECK_EINL_NL (
ARTIKELCODE VARCHAR(20)
 )

RETURNS (
OUT_CHECK INTEGER
 )

AS
declare variable VCHECK1 integer;
declare variable VCHECK integer;
begin
  OUT_CHECK = 0;

  select OUT_LAGER_STATUS
  from  SP_CHECK_ARTIKEL_N(:ARTIKELCODE) 
  into :vcheck
  ;


  --vielleicht Prozedur vorziehen und zweite Prozedur nur aufrufen wenn man im zeitlichen Fenster ist
  select OUT_LAGER_STATUS
  from SP_FIRST_AHT_LOAD
  into :vcheck1
  ;


  IF ( (vcheck=1) and (vcheck1=1) )  then OUT_CHECK = 1;

  suspend;
end



Процедура SP_CHECK_ARTIKEL_N имеет следующий заголовок:
create or alter procedure SP_CHECK_ARTIKEL_N (
P_ARTIKELCODE varchar(20),
P_DEL_ARTIKEL integer = 0 )
returns (
OUT_LAGER_STATUS integer)
as
declare variable AHT_LIMIT float;
.....



Если же исправить SP_CHECK_EINL_NL с вызовом второго параметра, то все проходит благополучно.

PS: Изменеие параметра на
P_DEL_ARTIKEL integer default 0

ведет к такому же результату.
...
Рейтинг: 0 / 0
дефолтнае значения в дараметрах хранимых процедур
    #39612208
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svdВ Delphi-коде

Я вангую типичную ошибку новичков: выставление CheckParams в true у TIBSQL.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
дефолтнае значения в дараметрах хранимых процедур
    #39612213
svd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

сорры, забыл указать: в Delphi работа ведется с FIBPlus. Указанного класса там нет.
...
Рейтинг: 0 / 0
дефолтнае значения в дараметрах хранимых процедур
    #39612222
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svd,

CheckParams выключи. При включенном компоненты при prepare начинают сами искать параметры в тексте запроса, и передают их серверу. А такого параметра в тексте dll нет.
...
Рейтинг: 0 / 0
дефолтнае значения в дараметрах хранимых процедур
    #39612235
svd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / дефолтнае значения в дараметрах хранимых процедур
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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