Главная страница
    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.47 MB
Время: 0.032 c
7-1076682950
Шурик Ш
2004-02-13 17:35
2004.04.18
Забыл... Как запустить из своего приложения другой EXE-шник?


7-1077125568
Status
2004-02-18 20:32
2004.04.18
Добавить свою прграмму в "Пуск->Выполнить"


1-1080922357
Mim
2004-04-02 20:12
2004.04.18
Клоентно-OLAPные кубы


14-1080147088
Undert
2004-03-24 19:51
2004.04.18
Второпласт в бруске


1-1080648330
Я Ламер
2004-03-30 16:05
2004.04.18
OleVariant





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский