Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

Создаю процедуру, FB говорит - parameter mismatch.   Найти похожие ветки 

 
Dimedrol ©   (2004-03-24 12:39) [0]

Коллеги - сабж.
Вот моя несложная процедура :

CREATE PROCEDURE INS_GOO (
   INNID INTEGER,
   DATATYPE INTEGER,
   ONEWORD VARCHAR (64))
RETURNS (
   ID INTEGER)
AS
DECLARE VARIABLE GEN INTEGER;
DECLARE VARIABLE MYID INTEGER;
DECLARE VARIABLE INN INTEGER;

BEGIN

select first 1 id from MY_GOOGLE where ONEWORD=:ONEWORD into :MYID;

IF (:MYID IS NULL) THEN
BEGIN
insert into my_google (ONEWORD, DATATYPE) values (:ONEWORD, :DATATYPE);
GEN=GEN_ID(GOO1, 0);
insert into MY_GOOIDS (INNID, WRDID) values (:INNID, :GEN);
ID=GEN;
SUSPEND;
END
else
BEGIN
insert into MY_GOOIDS (INNID, WRDID) values (:INNID, :MYID);
ID=MYID;
SUSPEND;
END
END


Выполняю код.
Процедура создается(!), но параллельно мне выдается ошибка
- parameter mismatch for procedure INS_GOO

В качестве клиента использую EMS IB/FB Manager.


 
Term ©   (2004-03-24 12:54) [1]


> select first 1 id from MY_GOOGLE where ONEWORD=:ONEWORD
> into :MYID;

может должно быть
for select


 
Dimedrol ©   (2004-03-24 13:09) [2]

Вообще-то у мня там стоит "FIRST 1"

ну да ладно...
Сделал FOR select
то же самое :-(

CREATE PROCEDURE INS_GOO (
   INNID INTEGER,
   DATATYPE INTEGER,
   ONEWORD VARCHAR (64))
RETURNS (
   ID INTEGER)
AS
DECLARE VARIABLE GEN INTEGER;
DECLARE VARIABLE MYID INTEGER;
DECLARE VARIABLE INN INTEGER;

BEGIN

FOR select first 1 id from MY_GOOGLE where ONEWORD=:ONEWORD into :MYID
DO
BEGIN
IF (:MYID IS NULL) THEN
BEGIN
insert into my_google (ONEWORD, DATATYPE) values (:ONEWORD, :DATATYPE);
GEN=GEN_ID(GOO1, 0);
insert into MY_GOOIDS (INNID, WRDID) values (:INNID, :GEN);
ID=GEN;
SUSPEND;
END
else
BEGIN
insert into MY_GOOIDS (INNID, WRDID) values (:INNID, :MYID);
ID=MYID;
SUSPEND;
END
END
END


 
Соловьев ©   (2004-03-24 13:17) [3]

Ошибка выдается при выполнении ХП?


 
Соловьев ©   (2004-03-24 13:21) [4]

IF (:MYID IS NULL) THEN
двое точие не надо


 
Dimedrol ©   (2004-03-24 13:26) [5]

Нет.
Ошибка при СОЗДАНИИ прцедуры.
Работает они потом ВРОДЕБЫ(!) нормально...
Но такого ведь быть не должно!

двоеточие убрал.
тоже самое... :-(


 
Johnmen ©   (2004-03-24 13:32) [6]

>Dimedrol ©

Везде ли совпадают типы ? integer и varchar(64) ?


 
Соловьев ©   (2004-03-24 13:33) [7]

ONEWORD VARCHAR (64) - желательно COLLATE указать


 
Соловьев ©   (2004-03-24 13:34) [8]

вернее CHARACTER SET


 
Dimedrol ©   (2004-03-24 14:59) [9]

2 Соловьев ©
ONEWORD VARCHAR(255) CHARACTER SET NONE

та же картина

2 Johnmen ©
Что значит "совпадают" ?
Эта процедура другими не используется
и самам другие не вызывает...

даже вот так делаю...


CREATE PROCEDURE INS_GOO
(
INNID INTEGER,
DATATYPE INTEGER,
ONEWORD VARCHAR (255)
)
RETURNS
(
ID INTEGER
)
AS

BEGIN
ID=0;
SUSPEND;
END


Даже ТОГДА(!) говорит... 888-\


 
Dimedrol ©   (2004-03-24 14:59) [10]

даже и так -

CREATE PROCEDURE INS_GOO (
   INNID INTEGER)
RETURNS (
   ID INTEGER)
AS

BEGIN
ID=0;
SUSPEND;
END


888888-\


 
Johnmen ©   (2004-03-24 15:09) [11]

Я давно подозревал, что EMS IB/FB Manager имеет неожиданные багофичи...
:)


 
Term ©   (2004-03-24 15:12) [12]

а ошибка уже при вызове процедуры?


 
Dimedrol ©   (2004-03-24 16:08) [13]

2 Johnmen ©
не исключено... ;-)

2Term ©
НЕТ.
ВЫЗЫВАЕТСЯ процедура нормально. Работает ОК.
Эта картина при СОЗДАНИИ!

Просто, я заподозрил неладное и забил тревогу..


 
Соловьев ©   (2004-03-24 16:10) [14]

Давно пора перейти на новую версию IBExpert - http://www.ibexpert.com/rus/ibe_sfx.exe



Страницы: 1 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.039 c
1-1080987121
Ivan
2004-04-03 14:12
2004.04.18
QRCompositeReport


1-1080814460
rainy day
2004-04-01 14:14
2004.04.18
Как создать обрабочик для события.


9-1056537993
TButton
2003-06-25 14:46
2004.04.18
изометрия, спрайты


8-1073328665
Ilya
2004-01-05 21:51
2004.04.18
Аналог процедуры Sound в Delphi


1-1080637822
vintik
2004-03-30 13:10
2004.04.18
Отличие Sender от Self