Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.13;
Скачать: CL | DM;

Вниз

Проблема с вычисляемыми полями в SQL запросе   Найти похожие ветки 

 
SergP ©   (2003-12-17 12:53) [0]

ADO, Provider=VFPOLEDB.1

Делаю такой запрос:
select r,region,vb,plm,mon,mon/plm as procent ....

так mon/plm as procent работает нормально в designtime,
но в runtime вылезает ошибка (что-то типа "Invalid floating point operation")
Как сделать чтобы оно нормально работало в runtime? И почему в designtime оно нормально работает?


 
JibSkeart ©   (2003-12-17 13:01) [1]

А дальше с ними ничего не делаешь ?


 
SergP ©   (2003-12-17 13:04) [2]


> JibSkeart © (17.12.03 13:01) [1]
> А дальше с ними ничего не делаешь ?


Дальше TADOQuery --> TDataSource --> TDBGrid
и пока больше ничего....


 
JibSkeart ©   (2003-12-17 13:07) [3]

попробуй заверни в хп ...


 
Sandman25 ©   (2003-12-17 13:08) [4]

А select r,region,vb,plm,mon,mon/(plm+1) as procent ....
работает?


 
JibSkeart ©   (2003-12-17 13:12) [5]

дейсвительно проверяй если plm <>0 то выводи :)
а дальше join или union
для 0 :)


 
SergP ©   (2003-12-17 13:24) [6]


> JibSkeart © (17.12.03 13:12) [5]
> дейсвительно проверяй если plm <>0 то выводи :)
> а дальше join или union
> для 0 :)


В таблице действительно есть записи где plm=0, но в where у меня отбираются такие записи:
select r,region,vb,plm,mon,mon/plm as procent, mon-plm as razn from region,z3121603 where (p=999999 or p=900999) and c_sti=r

для которых plm не может быть равен 0.
т.е. в моей таблице у записей для которых p=999999 or p=900999 , plm не равен 0


 
SergP ©   (2003-12-17 13:28) [7]


> Sandman25 © (17.12.03 13:08) [4]
> А select r,region,vb,plm,mon,mon/(plm+1) as procent ....
> работает?


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


 
Sandman25 ©   (2003-12-17 13:28) [8]

[4] Sandman25 © (17.12.03 13:08)


 
Sandman25 ©   (2003-12-17 13:30) [9]

[7] SergP © (17.12.03 13:28)

Наверное, все-таки в моей таблице у записей для которых p=999999 or p=900999 , plm не равен 0 неверно.


 
SergP ©   (2003-12-17 13:36) [10]


> Sandman25 © (17.12.03 13:30) [9]
> [7] SergP © (17.12.03 13:28)
>
> Наверное, все-таки в моей таблице у записей для которых
> p=999999 or p=900999 , plm не равен 0 неверно.


Таблица небольшая, так что я проверил все вручную. Там все действительно так как я сказал. Кроме того запрос работает если TADOQuery активировать в designTime.

Вобщем если не получится сделать нормально, то уберу это поле и буду вычислять уже в самой проге это значение....


 
Sandman25 ©   (2003-12-17 13:38) [11]

[10] SergP © (17.12.03 13:36)

Понятно. Может, так данная СУБД (FoxPro?) работает с запросами.


 
SergP ©   (2003-12-17 14:02) [12]


> Понятно. Может, так данная СУБД (FoxPro?) работает с запросами.


А черт их разберет эти СУБД, у всех синтаксис запросов разный, постоянно путаешься... А теперь еще и такие глюки (вернее особенности...)



Страницы: 1 вся ветка

Текущий архив: 2004.01.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.015 c
8-37806
SMike
2003-08-27 19:14
2004.01.13
Как определить/нажать клавиши на навороченных клавиатурах?


1-37760
andruxin
2003-12-29 17:22
2004.01.13
Как разукрасить TListView.


14-37855
Ермек
2003-12-23 01:28
2004.01.13
Руссифицированный IbExpert


14-37896
VID
2003-12-21 19:17
2004.01.13
Работаем с ApplicationEvents.OnMessage


1-37650
NneRreaLl
2003-12-26 19:40
2004.01.13
Народ -- как можно обработать каждую строку в ComboBox ?