Главная страница
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.024 c
1-37671
Amadeus
2003-12-19 00:45
2004.01.13
Функция форматирования текста в Stringgrid


1-37788
Jiurafdfg
2003-12-31 12:26
2004.01.13
Активная дочерняя форма.


1-37683
Silver_
2003-12-19 12:03
2004.01.13
Как отловить момент создания форм


14-37921
Ломброзо
2003-12-20 17:54
2004.01.13
Ваши соображения по архитектуре?


6-37841
Dmitriy_R
2003-11-13 09:17
2004.01.13
ServerSocket и THread