Здрастуйте,
Извините за глупый вопрос, но в БД я полный профан

. Столкнулся с такой вещью: пытаюсь создать ХП (IB 7), но в ответ получаю ошибку прекомпиляции, подскажите, пожалуйста в чем моя ошибка?
CREATE PROCEDURE TEST (
SIDN INTEGER)
RETURNS (
RESULT FLOAT)
AS
BEGIN
RESULT = (SELECT SUM('COUNT') FROM TESTTABLE WHERE SIDN IS NULL)
SUSPEND;
END
Спасибо.
Здравствуйте, <Аноним>, Вы писали:
А>Здрастуйте,
А>Извините за глупый вопрос, но в БД я полный профан
. Столкнулся с такой вещью: пытаюсь создать ХП (IB 7), но в ответ получаю ошибку прекомпиляции, подскажите, пожалуйста в чем моя ошибка?
А>А>CREATE PROCEDURE TEST (
А> SIDN INTEGER)
А>RETURNS (
А> RESULT FLOAT)
А>AS
А>BEGIN
А> RESULT = (SELECT SUM('COUNT') FROM TESTTABLE WHERE SIDN IS NULL)
А> SUSPEND;
А>END
А>
Предлагаю такой вариант:
CREATE PROCEDURE TEST (
SIDN INTEGER)
RETURNS (
RESULT FLOAT)
AS
BEGIN
SELECT SUM(COUNT) FROM TESTTABLE WHERE SIDN IS NULL INTO :RESULT;
SUSPEND;
END
Синтаксис Interbase требует завершать каждый оператор точкой с запятой, параметры в запросах должны начинаться с двоеточия. Кроме этого, непонятное выражение SUM('COUNT') — апострофы выделяют строковую константу, что значит сумма строковых констант.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, <Аноним>, Вы писали:
А>>Извините за глупый вопрос, но в БД я полный профан
. Столкнулся с такой вещью: пытаюсь создать ХП (IB 7), но в ответ получаю ошибку прекомпиляции, подскажите, пожалуйста в чем моя ошибка?
НФБ>Предлагаю такой вариант:
НФБ>НФБ>CREATE PROCEDURE TEST (
НФБ> SIDN INTEGER)
НФБ>RETURNS (
НФБ> RESULT FLOAT)
НФБ>AS
НФБ>BEGIN
НФБ> SELECT SUM(COUNT) FROM TESTTABLE WHERE SIDN IS NULL INTO :RESULT;
НФБ> SUSPEND;
НФБ>END
НФБ>
Новиков Федор Борисович прав. Но у меня есть один вопрос: а зачем в SP передавать sidn, если параметр нигде не используется?
Здравствуйте, sfsoft, Вы писали:
S>Новиков Федор Борисович прав. Но у меня есть один вопрос: а зачем в SP передавать sidn, если параметр нигде не используется?
Спасибо огромнейшее и Новикову Федору Борисовичу, и sfsoft, INTO рулит

. А по поводу параметра — это ведь "CREATE PROCEDURE
TEST", так сказать проба пера