Страница 1 из 1

Синтаксис хранимой процедуры

Добавлено: 18 июл 2006, 09:42
KostyaK
Работаю с IB7.
Проблема с созданием хранимой процедуры.
Необходимо в поле NUMBERDEVICE таблицы Devices вставить некоторое значение (которое является входным параметром процедуры).
Пишу в IBConsol

SET TERM !! ;
CREATE PROCEDURE MyProc ("NUMBERDEVICE_from_SCADA" INTEGER)
AS
BEGIN
INSERT INTO Devices (NUMBERDEVICE) VALUES ("NUMBERDEVICE_from_SCADA")
EXIT ;
END ;
SET TERM ; !!

Не фурычит...
Пишет, что ошибка в 5-ой строке (с оператором INSERT) - "Token UnKnown", SQL Error code - 104.

Очень подозреваю, что дело в синтаксисе, но что именно?

Добавлено: 18 июл 2006, 09:54
CyberMax
Попробуй через IB Expert это сделать. Что за изврат через консоль писать :shock:.

Re: Синтаксис хранимой процедуры

Добавлено: 18 июл 2006, 10:04
KostyaK
Проблема в строке
KostyaK писал(а): INSERT INTO Devices (NUMBERDEVICE) VALUES ("NUMBERDEVICE_from_SCADA")
Очень подозреваю, что дело в синтаксисе, но что именно?
Если поменять на
INSERT INTO Devices (NUMBERDEVICE) VALUES (13)
,то всё нормально работает.
Вопрос: как передать входной параметр NUMBERDEVICE_from_SCADA в строку INSERT?

Добавлено: 18 июл 2006, 10:11
kdv
Костя, иди пожалуйста, читай документацию.

Добавлено: 18 июл 2006, 10:21
KostyaK
kdv писал(а):Костя, иди пожалуйста, читай документацию.
1) Сейчас этмим и занимаюсь
2) И долго думал над столь информативным ответом?

Добавлено: 18 июл 2006, 10:56
adima
KostyaK писал(а):
kdv писал(а):Костя, иди пожалуйста, читай документацию.
1) Сейчас этмим и занимаюсь
2) И долго думал над столь информативным ответом?
двоеточие поставь перед имененем параметра

Код: Выделить всё

INSERT INTO Devices (NUMBERDEVICE) VALUES (:"NUMBERDEVICE_from_SCADA") 

Добавлено: 18 июл 2006, 11:02
kdv
1) Сейчас этмим и занимаюсь
молодец.
2) И долго думал над столь информативным ответом?
чтобы было понятно - я администратор ibase.ru, и собственно владелец и автор всего этого. Так что выпендриваться не надо. Если я тебе посоветовал почитать документацию, значит твой вопрос настолько элементарен, что не заслуживает упоминания в статьях сайта, FAQ, и в том числе обсуждения здесь.

Кроме того, ни здесь ни на sql.ru не любят, когда пусть даже новичок начинает требовать разжевать ему элементарные вещи из документации или статей на сайте.

Добавлено: 18 июл 2006, 11:03
KostyaK
adima писал(а): двоеточие поставь перед имененем параметра
Ага, и точку с запятой в конце строки

Код: Выделить всё

INSERT INTO Devices (NUMBERDEVICE) VALUES (:"NUMBERDEVICE_from_SCADA"); 
Спасибо, работает.