![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка при создании процедуры [D5, IB6.x]
cranium © (2002-04-22 03:17:00)Создаю таблицу
CREATE TABLE NONCAPITALIZED_IN_JR (
CipherPro VARCHAR(20) NOT NULL COLLATE PXW_CYRL,
DateIn DATE,
NamePro VARCHAR(30) NOT NULL COLLATE PXW_CYRL,
Piece FLOAT,
UnitMeas MERA,
UnitPrice MONEY,
PersonalNumber VARCHAR(20) NOT NULL COLLATE PXW_CYRL,
FOREIGN KEY (PersonalNumber) REFERENCES EMPLOYEE_SP
);
Далее пытаюсь создать процедуру
CREATE PROCEDURE IN_NonCapitalized_In_JR (СPro VARCHAR (20), DOut DATE)
BEGIN
INSERT INTO NonCapitalized_OUT_JR (CipherPro, DateIn)
VALUE (:Cpro, :Dout);
END
А InterBase выдает ошибку
Dynamic SQL Error
SQL error code = -104
Unexpected end of command
Statement: CREATE PROCEDURE
В чем собственно грабли? Или INSERT можно вызвать только из клиенского приложения?
Val (2002-04-22 19:14:00) [1]>Desdechado © (22.04.02 19:03)
не очень помню как в IB, но в Oracle SP для параметров указывается тип без размерности.
Val (2002-04-22 19:12:00) [2]CREATE PROCEDURE .. AS
Desdechado (2002-04-22 19:03:00) [3]2 roottim
еще как пишут! Это вполне корректно.
вот SET TERM действительно нужен.
а где споткнется еще:
1. INSERT ... VALUE S
2. в INSERT перечислены не все поля, которые NOT NULL
roottim (2002-04-22 17:11:00) [4]чесно говоря я не интербазовец
но такое дело СPro VARCHAR (20)никогда не пишут
либо тип такой обьявляй, либо убирай размерность!
Malder (2002-04-22 17:10:00) [5]Угу. Какое сообщение об ошибке выдается ?
Johnmen (2002-04-22 16:32:00) [6]А как не работает ?
cranium (2002-04-22 16:22:00) [7]А причем тут разделитель? Все равно не работает:((((
DarkGreen (2002-04-22 05:55:00) [8]Смотри описание SET TERM
Должно быть так:
SET TERM ^ ;
CREATE PROCEDURE IN_NonCapitalized_In_JR (СPro VARCHAR (20), DOut DATE)
BEGIN
INSERT INTO NonCapitalized_OUT_JR (CipherPro, DateIn)
VALUE (:Cpro, :Dout);
END^
SET TERM ; ^