Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Вниз

Создаю процедуру, 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.031 c
3-1079447433
Andriy Tysh
2004-03-16 17:30
2004.04.18
Group in DBGrid (DBGridEh)


14-1080033374
able
2004-03-23 12:16
2004.04.18
Теперь ясно...


1-1080650227
КомофОнСамый
2004-03-30 16:37
2004.04.18
TMemo - как разбить на слова.


14-1080111601
Goida
2004-03-24 10:00
2004.04.18
Черный Тюльпан...


1-1080379614
Jet8
2004-03-27 12:26
2004.04.18
Где взять доки по генерации кода Delphi?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский