Запрос хп на вставку текста

CH1PSET1
Дата: 28.05.2012 16:03:03
Здарвствуйте! Я новичек вообще в этой теме, но помогите пожалуйста написать запрос хп на вставку значений. Interbase 7.
У меня есть хп
CREATE PROCEDURE INS_VED (sname varchar(50), sage integer)

AS
DECLARE VARIABLE ID_H INTEGER;
begin
IF (NOT EXISTS (SELECT * FROM thorse WHERE name = :sname  AND age = :sage))

THEN

INSERT INTO thorse(name, age) VALUES (:sname, :sage);

SELECT ID_Horse FROM thorse WHERE name=:sname and age=:sage INTO :id_H;
end


Пишу запрос
EXECUTE PROCEDURE ins_ved (Vasy, 20)

Мне ошибку выдает, пытался погуглить синтаксис, но ничего не смог найти, числовые значений нормально вставляет, а текст не хочет. Спасибо.
vvm
Дата: 28.05.2012 16:04:55
CH1PSET1,

новичок через о пишется.
Dimitry Sibiryakov
Дата: 28.05.2012 16:10:01

А синтаксис надо не гуглить, а читать в Language Reference.

Posted via ActualForum NNTP Server 1.5

kdv
Дата: 28.05.2012 16:10:46
ошибка-то где? в гугле оставил? :-)
vvm
Дата: 28.05.2012 16:12:31
CH1PSET1,

тут от текста ошибки зависит. Ты не рассказывай никому, ОК?

SELECT ID_Horse FROM thorse WHERE name=:sname and age=:sage INTO :id_H; -- Это - зачем?
Таблоид
Дата: 28.05.2012 16:12:34
Строковые литералы должны указываться в одиночных апострофах. Каждый оператор SQL, в том числе и execute proc, обязан завершаться символом "точка с запятой":
EXECUTE PROCEDURE ins_ved ( 'Vasy', 20);
автор
пытался погуглить синтаксис, но ничего не смог найти
А вы точно искали ? По фразе 'firebird insert' сразу же вываливается официальная дока с примерами, в том числе - с указанием строковых литералов:
insert into Scholars (firstname, lastname, address, phone, email)
  values ('Henry', 'Higgins', '27A Wimpole Street', '3231212', null)
  returning lastname, fullname, id
CH1PSET1
Дата: 28.05.2012 16:15:36
error at line 1 - Dynamic sql error
sql error code = -104
token unknown - line 1, char 27
Vasy

sql - execute procedure ins_ved (vasy, 20)

Вот ошибка.
CH1PSET1
Дата: 28.05.2012 16:16:29
Таблоид
Строковые литералы должны указываться в одиночных апострофах. Каждый оператор SQL, в том числе и execute proc, обязан завершаться символом "точка с запятой":
EXECUTE PROCEDURE ins_ved ( 'Vasy', 20);
автор
пытался погуглить синтаксис, но ничего не смог найти
А вы точно искали ? По фразе 'firebird insert' сразу же вываливается официальная дока с примерами, в том числе - с указанием строковых литералов:
insert into Scholars (firstname, lastname, address, phone, email)
  values ('Henry', 'Higgins', '27A Wimpole Street', '3231212', null)
  returning lastname, fullname, id


но мне через процедуру как то нужно..
CH1PSET1
Дата: 28.05.2012 16:17:06
vvm
CH1PSET1,

тут от текста ошибки зависит. Ты не рассказывай никому, ОК?

SELECT ID_Horse FROM thorse WHERE name=:sname and age=:sage INTO :id_H; -- Это - зачем?


я не знаю) в примере лабы указано)
CH1PSET1
Дата: 28.05.2012 16:18:39
Таблоид
Строковые литералы должны указываться в одиночных апострофах. Каждый оператор SQL, в том числе и execute proc, обязан завершаться символом "точка с запятой":


[/src]


Спасибо большое, заработало)