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

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

Непонятки с IN в динамическом SQL-е [D5, MSSQL]


Валерий ©   (2005-08-11 14:10:00) 

Query1.SQL.Add(' where field1=1 or field1=2') - работает,
а если Query1.SQL.Add (' where field1 in (1,2)') - после Query.Open Дельфи выдает ошибку:
exception class EDBEnjineError : Capability not Supported (возможность не поддерживается)

Если поставить в Query1 RequestLive :=False ошибка изчезает, фильтр работает.
Но в другой проге у меня RequestLive :=True  и IN срабатывает после изменения SQL.Text и открытия Query !?
Уважаемые знатоки, объясните пожалуйста смысл этой ошибки и как ее избежать.


Anatoly Podgoretsky   (2005-08-11 19:46:00) [1]

но продолжали жрать BDE, ODBC


Fay   (2005-08-11 19:35:00) [2]

2 Валерий   (11.08.05 17:00) [7]
>> Это шестая прога сделанная с BDE , ODBC, SQL7 на D5
Мыши плакали, кололись...


Валерий   (2005-08-11 17:34:00) [3]

Запрос  в query тривиальный:
select oper_date, oper_acc_key, oper_type, oper_vid, oper_summ, account_summ, oper_login, oper_datetime, oper_note from oper

Перед открытием к нему добавляется where oper_vid in (2,4,5) - не работает
А если добавить например where oper_vid = 2 - все OK


ANB   (2005-08-11 17:02:00) [4]


> Валерий   (11.08.05 17:00) [7]
- дык надо весь запрос смотреть.


Валерий   (2005-08-11 17:00:00) [5]

Это весь код. В событии onShow формы.
Это шестая прога сделанная с BDE , ODBC, SQL7 на D5.
Раньше с IN проблем не было, да и сейчас нет когда в старых прогах в отладчике смотрю подобные места.
Почему в этой проге IN работает только если в Query поставить RequestLive=False???


ANB   (2005-08-11 16:50:00) [6]

А код полностью ? Вообще, лучше на ADO перейди.


Валерий   (2005-08-11 15:30:00) [7]

QryOper.SQL.Add(' where oper_vid =1') ;       // работает
//QryOper.SQL.Add(' where oper_vid in (1)') ; // не работает
QryOper.Open;


ANB   (2005-08-11 15:25:00) [8]


> Валерий   (11.08.05 15:10) [3]

Намеков не понимаешь. Пости код.


Валерий   (2005-08-11 15:10:00) [9]

В том то и дело, что BDE одно и то-же (обе проги на одном компе)


sniknik   (2005-08-11 14:38:00) [10]

версии BDE сравни... а после сравнения выкини его и не используй для MSSQL.


ANB   (2005-08-11 14:26:00) [11]


> Валерий   (11.08.05 14:10)
- в 17 строке ошибка.


Наверх

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