Это баг или фича

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
armagedon2007
Сообщения: 44
Зарегистрирован: 14 мар 2008, 21:01

Это баг или фича

Сообщение armagedon2007 » 03 июл 2008, 15:58

Делаю SQL запрос

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

MERGE INTO REG_ENTRY USING
(WITH
    D_IN (DOC_ID, DOC_DATE, AGENT_ID, STOCKS_ID, DC1) AS
        (
        SELECT DOC_IN.ID, DOC_IN.DOC_DATE, DOC_IN.AGENT_ID, DOC_IN.STOCKS_ID, DOC_IN.DC1
        FROM DOC_IN
        WHERE DOC_IN.ID = :ID
        ),                             ^^^
.....

ругается что незнает что такое :ID
Если в начале дописать тукую вещь

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

EXECUTE BLOCK
(ID INTEGER = :ID)
AS
BEGIN
то неругается
Это так надо?
Последний раз редактировалось armagedon2007 03 июл 2008, 16:04, всего редактировалось 1 раз.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 03 июл 2008, 16:00

1. откуда запрос выполняется? :ID это параметр, его передавать надо перед выполнением запроса.

2. типа, впервые слышишь? Оно ж тебе человеческим языком говорит - ты выбираешь столбец DOC_ID из таблицы A или REG_ENTRY?
алиасы таблиц используй.

armagedon2007
Сообщения: 44
Зарегистрирован: 14 мар 2008, 21:01

Сообщение armagedon2007 » 03 июл 2008, 16:05

ИЗ SQL редактора через IBExpert
второе и сам догнал

armagedon2007
Сообщения: 44
Зарегистрирован: 14 мар 2008, 21:01

Сообщение armagedon2007 » 03 июл 2008, 16:08

Подготовка запроса даже не делается

Attid
Спец
Сообщения: 377
Зарегистрирован: 14 ноя 2006, 09:58

Сообщение Attid » 03 июл 2008, 16:58

сдается мне что бага эксперта, попробуй хвастунову пожаловаться.

armagedon2007
Сообщения: 44
Зарегистрирован: 14 мар 2008, 21:01

Сообщение armagedon2007 » 04 июл 2008, 11:25

Действительно проблема в IBExpert-е

Kotъ-Begemotъ
Сообщения: 250
Зарегистрирован: 25 июл 2007, 21:33

Сообщение Kotъ-Begemotъ » 09 июл 2008, 01:28

armagedon2007 писал(а):Действительно проблема в IBExpert-е
Да. Пераметризованные запросы, в которых параметр используется во вложенном запросе, так в эксперте себя ведут. Не раз уже внммание обращал, поэтому для теста прибиват значение "гвоздями" :) А уже в проге (Delphi + FIB+) подставлял параметры, и всё было нормально.

Ответить