![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
LocalSQL and TQuery [D5, dBase, FoxPro]
stoper © (2003-10-07 12:05:00)
Беда вот в чем, есть запрос
select a.a,sum(a.summa) as sum1,a.data,sum(a.nacinka) as nac,b.shtrih,b.kartka,b.name"+
from document a,os b
where (a.a=b.shtrih) and (a.data>=:a0 and a.data<=:a1) and b.kartka=:a2
group by a.data,b.shtrih,b.kartka,b.name,a.a
order by a.data
Бывает так что при определенном значенни параметра а2 набор будет пустой.В этом случае BDE выдает Translate error.Value out of bonds. А при query1.open прога продолжает работать, мало того
Query1.recordcount=1.Может кто че подскажет как это побороть.За ранее благодарю
stoper (2003-10-07 14:17:00) [1]
MsGuns © (07.10.03 13:29) [13] Большое спасибо за подсказку. Все работает.
Johnmen (2003-10-07 14:02:00) [2]
>MsGuns © (07.10.03 13:29) [13]
>Агрегатный запрос возвратит одну запись ...
Если это так, то это фича дибейса, фокса, а м.б и бедее...
:)
Val (2003-10-07 13:34:00) [3]
>stoper (07.10.03 13:23) [12]
MsGuns © (07.10.03 13:29) [13]
вот она, умная мысль! прислушайтесь.
Кстати, когда сталкивался с подобной проблемой - на таблицах парадокса запрос отрабатывал без ошибок, возвращал себе пустую запись и не матерился как dbf, кажется.
MsGuns (2003-10-07 13:29:00) [4]
Агрегатный запрос возвратит одну запись (на то он и агрегатный) даже если условиям запроса не удовлетворила ни одна запись. Надо переделать запрос (на встроенные селекты) или после открытия проверять на пустоту какого-то не нулевого поля (одного из перечисленных в GROUP BY) и если но пустое, реакция как на пустой.
stoper (2003-10-07 13:23:00) [5]
Val, так и я о том же.Я же не говорил о параметрах, наверное меня не правильно поняли. Я говорю о том что я хочу что бы запрос мне ничего не возратил,как он у меня это делает на MySQL,
но беда в том что я вынужден работать с dbf-никами.А вот здесь у меня действительно кака.Думаю это особености BDE.Прийдется ити другим путем.
Val (2003-10-07 13:21:00) [6]
>Johnmen © (07.10.03 13:15) [10]
если у него при наличии записей, удовлетворяющих условиям запрос отрабатывает нормально - то с типами параметров проблем быть не должно, думаю. Скорее, дело именно в преобразовании бде пустых значений возвращенного НД.
Johnmen (2003-10-07 13:15:00) [7]
>b.kartka=:a2
Каковы все же типы ? И значения в обоих случаях ?
Val (2003-10-07 13:13:00) [8]
>stoper (07.10.03 13:07) [8]
как знаете...
если запрос не удовлетворяет условиям - он не должен ничего возвратить и все, у вас же - явная кака. Это, по вашему, нормально и дело в параметрах??
stoper (2003-10-07 13:07:00) [9]
Дело не в дате , а в конкретном периоде, например значения параметра а2 нет в этом периоде, вот и имеем ошибку ,а в другом все нормально.
Val (2003-10-07 12:56:00) [10]
я советую проверить свою версию, если она подтвердится, тогда уже нужно будет думать, что делать с датами.
stoper (2003-10-07 12:54:00) [11]
Val так без дат никак нельзя мне ж выборка за период нужна.
Val (2003-10-07 12:47:00) [12]
>stoper (07.10.03 12:43) [4]
протестируйте, относится ли это именно к датам, уберите их из выборки, д.б. все в порядке, тогда проблема именно в них.
stoper (2003-10-07 12:43:00) [13]
На самом деле записей отвечающим условий может и не быть,но тогда должно быть query1.recordcount=0 а не 1.Блин как быть.
Val (2003-10-07 12:30:00) [14]
как мне помнится, у dbf такая гадость вылазит, когда возвращается запись с nullable датой...по крайней мере что-то связанное именно с дата = null.
stoper (2003-10-07 12:23:00) [15]
Когда делаю Query1.open ошибка не выскакивает.Выскакивает когда я хочу работать с этим набором.Например поместил грид на форму выскочила, убрал нет . Попробывал этот же запрос в BDE там она сразу выползает
Johnmen (2003-10-07 12:19:00) [16]
Где выдает ? В какой момент ? При каком значении ?