Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с запросом (LocalSQL,Paradox,TQuery & parameters) [D5, Paradox]


OneOfTheFew ©   (2003-04-04 11:46:00) 

Уважаемые Мастера!!!

Проблема следующая:

Две таблицы Header и Detail связаны отношением OneToMany через поля H_ID

В Datamodule есть компонент tbHeader (TTable)
Поля:
H_ID,
SumOfTransactions и т.д.
USER_ID // вычисляемое поле

и компонент quDetail (TQuery)

quDetail.DataSource:=dsHeader;

SQL примерно такой:


Select
(:USER_ID) as USER_ID,
D.Transact_ID,
D.HDate,
D.HCustomer_ID, и т.д.
From
Detail D
Where
D.H_ID=:H_ID


Такой quDetail.Active:=true работает.

Делаем следующие изменения:
Добавляем в tbHeader еще одно вычисляемое поле YetAnotherParameter,
а в тексте запроса компонента quDetail:


Select
(:USER_ID) as USER_ID,
(:YetAnotherParameter) as YetAnotherParameter,
D.Transact_ID,
D.HDate,
D.HCustomer_ID, и т.д.
From
Detail D
Where
D.H_ID=:H_ID


Теперь quDetail.Active:=true не работает. Говорит "Operation not applicable".
О чем идет речь?

Заранее благодарен за внимание и помощь!


Mike Kouzmine   (2003-04-04 15:56:00) [1]

А как парамс офрмлены?
>MsGuns © (04.04.03 13:19)
Странно. Может надо курнуть, чтобы понять, но если не можешь однозначно идентифицировать запись по полю(ям) в мастере, то..
Не соображу. Timeout.


OneOfTheFew   (2003-04-04 15:32:00) [2]

To MsGuns & Mike Kouzmine

Уважаемый MsGuns меня правильно понял.
Но в конце-то концов, знает кто что это за грабли???


Johnmen   (2003-04-04 13:24:00) [3]

>MsGuns © (04.04.03 13:19)

Не наш случай...


MsGuns   (2003-04-04 13:19:00) [4]

>Mike Kouzmine © (04.04.03 13:11)
Нет, не глупость. Но получениесвязующих филдов в курсоре детала и отображениеих - это две большие разницы.
Например, если в детальном НД нет собственных UID, т.е. она является производной от нескольких других таблиц ? Мне нужны эти поля, например, для простоты создания запросов обновления этого детала.


Johnmen   (2003-04-04 13:17:00) [5]

>Mike Kouzmine © (04.04.03 13:11)
>А серьмяжная правда этого?

Знаешь, мне она тоже недоступна...:)


Mike Kouzmine   (2003-04-04 13:11:00) [6]

Просто возник вопрос? А серьмяжная правда этого? Получать на выходе детеля поля с одинаковым значением? Я всегда придерживался правила - если поле в мастере одинаковое для всех деталей, то я его гашу, а тут наоборот. Если глупость сказал, прошу извинить.


Johnmen   (2003-04-04 13:04:00) [7]

Даже нужно !


Mike Kouzmine   (2003-04-04 13:01:00) [8]

Можно вклиниться?


Johnmen   (2003-04-04 12:58:00) [9]

Да, интересная проблема...
Если хочешь, могу привести свои соображения. Но сначала укажи, в какой последовательности получаются НД (Open).


OneOfTheFew   (2003-04-04 12:49:00) [10]

To Johnmen

Это проверял , буквально сегодня перечитывал в хелпе: не, не то.
Причем эти грабли исправно работают и вслучае если передаваемые параметры являются физ. полями в табле, а не калками, как здесь.


Johnmen   (2003-04-04 12:35:00) [11]

Возможно, повторяю, возможно, параметр YetAnotherParameter не имеет значения, т.е. Null.


Наверх

Титульная страница Поиск, карта сайта Написать письмо