Главная страница
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.065 c
7-1076956738
Gopnik
2004-02-16 21:38
2004.04.18
Как определить на каком com порту сидит модем?


1-1080547390
Sauron_ua
2004-03-29 12:03
2004.04.18
Текстури в DirectX


3-1079468454
Zhenja
2004-03-16 23:20
2004.04.18
Index is out of date


14-1080312361
Soft
2004-03-26 17:46
2004.04.18
Украинский хакер вылетает в США.


6-1076183970
sadretro
2004-02-07 22:59
2004.04.18
как проверить все IP адресса в локалке .