Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];

Вниз

Возможно ли (D7, DBase)   Найти похожие ветки 

 
paul_k   (2003-08-25 09:41) [0]

Не подскажут ли уважаемые, понимает ли DBase функцию round, и если понимает то как её правильно присенить.
есть код вида
q_tmp:=tQuery.Create(nil)
q_tmp.Database:="MyDb";
q_tmp.Sql.add("select sum(field1*field2) as sum_total from table");
q_tmp.open;
sum_total:=MyRound(q_tmp.FieldByName("sum_total").asfloat,2)
q_tmp.close

Есть ли способ (кроме перебора каждой записи по циклу) написать так
q_tmp:=tQuery.Create(nil)
q_tmp.Database:="MyDb";
q_tmp.Sql.add("select round(sum(round(field1,2)*round(field2,2)),2) as sum_total from table");
q_tmp.open;
sum_total:=MyRound(q_tmp.FieldByName("sum_total").asfloat,2)
q_tmp.close

Пробовал - передергиваю запрос - не работает. Ругается на ошибку в SQL
Как правильно написать это округление, или где об этом можно почитать?


 
sniknik   (2003-08-25 11:05) [1]

DBase наверняка понимает, если ты о самом DBase а не о Local SQL в BDE.

> Есть ли способ (кроме перебора каждой записи по циклу) написать так
можно для округления CAST к целочисленному типу использовать (наверное), или сделать вычисляемое поле уже в дельфях независимо от запроса. а можно так (с дробями) оставить а по GetText выводить как нужно. можно в отчете округлять. все в зависимости от задачи.

> Как правильно написать это округление, или где об этом можно почитать?
книги, Local SQL Help (в дельфях).


 
paul_k   (2003-08-25 11:19) [2]

Задача простая:
получить для дальнейших расчетов сумму округленных значений.
если обращатся с запросом, аналогичным тому, я выше написал, к SYBASE? ил и MsSql - все работает как надо. а вот как к DBase select писать - не понимаю


 
paul_k   (2003-08-25 11:39) [3]

да и ещё в ту-же тему.
можно ли к DBAse (если можно то как) написать подобное

declare @id numeric
select @id=3

select
case @id
when 4 then @id*4
when 3 then @id*5
end


то есть как case в селекте сделать


 
sniknik   (2003-08-25 11:44) [4]

> если обращатся с запросом, аналогичным тому, я выше написал, к SYBASE? ил и MsSql - все работает как надо.
синтаксис и возможности любого SQL сервера различаются. а уж сравнивать по возможностям с Local SQL ...
> а вот как к DBase select писать - не понимаю
1 используй то что есть, почитай хелп по Local SQL.
2 переходи на другой движок, начни с хелпа по нему.

> да и ещё в ту-же тему.
> можно ли к DBAse (если можно то как) написать подобное
в DBAse может быть и можно, в Local SQL нет. никакиж декларирований никаких селектов...
(ты же не используеш DBase ты используеш BDE и Local SQL с таблицами в формате DBase)


 
paul_k   (2003-08-25 11:59) [5]

>2 переходи на другой движок, начни с хелпа по нему.
Рад бы в рай, да заказчики не пускают
> никакиж декларирований никаких селектов
По поводу деклараций понятно что нет. Хотя не понятно почему этот запрос к Sybase нормально работает через BDE или там не Local SQL уже работает...
а вот никаких селектов? непонятно... или имелось в виду никаких case?


 
paul_k   (2003-08-26 19:26) [6]

Спасибо за полноценный и исчерпывающий ответ.
Понял что придедся каждую запись обрабатывать. бедные юзверя.


 
sniknik   (2003-08-26 20:28) [7]

> а вот никаких селектов? непонятно... или имелось в виду никаких case
именно, зарапортовался.

> Понял что придедся каждую запись обрабатывать. бедные юзверя.
ну зачем же так, не все так плохо кое какие возможности всетаки есть.

> Рад бы в рай, да заказчики не пускают
ну структуру и формат базы никто не заставляет менять а как у тебя там внутри не все ли равно?
к примеру перейдя на ADO - Jet - dBase уже больше возможностей. к примеру case (как в MSSQL) = iif(условие, если правда, если ложь) или наоборот (для более полного возможны вложения).


 
paul_k   (2003-08-27 19:49) [8]

Проще новый софт написать ...
и сразу или на MsSql опереть, ну или на Acсess
С вопросом выкрутился, просто убедил что жили 2 года без отчета и еще проживут, пока новый софт написать не укажут....
а за подсказку c ADO - большое спасибо. буду пробовать



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

Форум: "Базы";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.011 c
1-58769
BustaBoss
2003-09-06 00:53
2003.09.18
Как скрыть свою программу из списка процессов в Win XP


6-58823
Дрын
2003-07-18 08:34
2003.09.18
Работа с файлами по локальной сети


6-58811
uaquantum
2003-07-17 02:29
2003.09.18
Ping


14-58873
MsGuns
2003-08-28 16:36
2003.09.18
Значок


8-58788
gRad2003
2003-05-17 11:58
2003.09.18
midi->wav





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский