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

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

Параметрический запрос [Paradox]


Страницы:   1 2

glow ©   (2003-09-19 12:11:00) 

Добрый день уважаемые мастера!
SELECT DISTINCT A.RNOM FROM ASPI.db A WHERE (A.KAT = 1)AND (A.SP = :s)AND EXISTS(SELECT * FROM Prikaz.db C WHERE (C.RNOM = A.RNOM) AND (C.Type = 1) AND C.dat BETWEEN ""1.1." + IntToStr(G) + """ AND ""31.12." + IntToStr(G) + """)
Параметр :s изменяется в цикле по таблице tNspec(DM.q1NK.ParamByName("s").AsString:=DM.tNspecKOD.AsString;)
но в запрос с подзапросом параметр не передается (ошибка: неправильное использование ключевого слова), надо как-то по-другому передать значение в запрос


Sandman25   (2003-09-19 15:27:00) [21]

[2] glow © (19.09.03 13:57)

Да. У меня просто старая привычка вместо Q.SQL.ADD("") использовать Q.SQL.Text := ""

[4] Bob © (19.09.03 14:05)

Вложенный запрос может выполниться и "после" внешнего. В данном случае именно так и будет - для каждой строки-кандидата из A будет выполняться вложенный запрос по C и проверяться его результат.


Bob   (2003-09-19 14:05:00) [22]

EXISTS(SELECT * FROM Prikaz.db C WHERE (C.RNOM = A.RNOM) AND (C.Type = 1) AND C.dat BETWEEN ""1.1." + IntToStr(G) + """ AND ""31.12." + IntToStr(G) + """)
A.RNOM откуда возьмется. Сначала у тебя отработается вложенныйзапрос, а потом ты перейдешь к внешнему. Попробуй так FROM ASPI.DB A, PRIKAZ.db c. Должно прокатить.


Johnmen   (2003-09-19 14:01:00) [23]

!


glow   (2003-09-19 13:57:00) [24]

Заново это Q.Clear
Q.SQL.ADD()
?


Sandman25   (2003-09-19 12:16:00) [25]

Если запрос с подзапросом параметр не передается,
то можно либо написать хранимую процедуру с параметром,
либо каждый раз в цикле создавать SQL.Text заново.


Страницы:   1 2

Наверх

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