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

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

Добавлено: 03 июл 2008, 15:58
armagedon2007
Делаю 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
то неругается
Это так надо?

Добавлено: 03 июл 2008, 16:00
kdv
1. откуда запрос выполняется? :ID это параметр, его передавать надо перед выполнением запроса.

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

Добавлено: 03 июл 2008, 16:05
armagedon2007
ИЗ SQL редактора через IBExpert
второе и сам догнал

Добавлено: 03 июл 2008, 16:08
armagedon2007
Подготовка запроса даже не делается

Добавлено: 03 июл 2008, 16:58
Attid
сдается мне что бага эксперта, попробуй хвастунову пожаловаться.

Добавлено: 04 июл 2008, 11:25
armagedon2007
Действительно проблема в IBExpert-е

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