![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
задача такая :
есть текс скл запроса в свойстве скл ADOquery. (access) Там есть оператор In , а что будет под оператором ин - это уже должно динамически меняться, то есть по сути определяться через параметр. Проблема следующая неясно как корректно задавать такой параметр т.е. возможно какая то определенная орфография должна быть. В аксесе все просто IN (a,b,c) ВОТ так в делфи работает Код:
datamodule2.statQ.sql.Add('select sum(price*qnt) as total1') ;
datamodule2.statQ.sql.Add('from buy') ;
datamodule2.statQ.sql.Add('where ID_buy in (:listID)' ) ;
datamoduleunit.DataModule2.statq.Parameters.ParamByName('listID').Value:='120';А вот так уже не работает Код:
datamoduleunit.DataModule2.statq.Parameters.ParamByName('listID').Value:='120,222';Как тут быть? Заранее спасибо Последний раз редактировалось Taddy28, 09.04.2013 в 16:09. |
|
#2
|
||||
|
||||
|
строку
Код:
'where ID_buy in ()' Код:
datamodule2.statQ.sql.Add |
|
#3
|
||||
|
||||
|
Угу, для IN нельзя параметром передавать диапазон значений. Потому текст запроса придется формировать динамически.
Но можно вот так извернуться, создав временную таблицу для значений: Код:
create table #ListID (ID int) Код:
select sum(price*qnt) as total1 from buy inner join #ListID on buy.ID=#ListID.ID |
|
#4
|
|||
|
|||
|
Не уверен что Access поддерживает временные таблицы... (хотя может и ошибаюсь).
Пс. как писалось выше динамический запрос Вам поможет. |
|
#5
|
||||
|
||||
|
Поддерживает, куда же без них
|