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

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

Приведение типов [D6, MS Jet]


Вопрошающий ©   (2004-05-13 13:33:00) 

MS Jet преподносит новые сюрпризы.
В таблице поле [Количество] имеет тип Integer.
Запрос

SELECT
 SUM(Количество) AS [Всего],
 ...


возвращает тип Float.

Как привести результат к типу Integer?


MIKE kouzmine   (2004-05-13 16:15:00) [1]

sniknik ©   (13.05.04 15:02) [9] Не надо. Ты отвечаешь не только им.


sniknik   (2004-05-13 15:02:00) [2]

> Развязки не будет: INT() возвращает все тот же FLOAT. (Или я не пробовал?).
int проводит к типу в запросе (> Вопрос идет именно о запросе.), за то что возвращается он не отвечает. ты посмотри что возвращает твой "незамутненный" вычислениями Integer тем же способом каким счас смотриш.
вот из такого
SELECT
Количество AS [Всего],

> Богема нагадила [5] и ушла.
вот теперь понимаю почему ты не подписываешся.

p.s. перестать отвечать анонимам, чтоли?


Вопрошающий   (2004-05-13 14:17:00) [3]

Богема нагадила [5] и ушла.


Вопрошающий   (2004-05-13 14:03:00) [4]

2 Johnmen

CAST в MS Jet не работат. Исключение: Неопознанная ошибка.

2 sniknik

Развязки не будет: INT() возвращает все тот же FLOAT. (Или я не пробовал?).


Вопрошающий   (2004-05-13 13:58:00) [5]

Мне не нужнен результат '1.0'. Мне нужно '1'. И количество - именно целое, даже длинное целое - или это не я создавал таблицу.

P.S. Предложение сделать Calculated поле (с последующими извращениями) не принимаются... :)


sniknik   (2004-05-13 13:54:00) [6]

> MS Jet преподносит новые сюрпризы.
Вопрошающий удивлен! он не читал доку по Jet.

;о) (чемто первое заявление на газетный заголовой похоже, надеюсь мое в том же "стиле", скоро будет "развязка" :)


SELECT
Int(SUM(Количество)) AS [Всего],


Johnmen   (2004-05-13 13:53:00) [7]

SELECT
CAST(SUM(Количество) AS INTEGER) AS [Всего],
...


Мунька   (2004-05-13 13:50:00) [8]

Что Вам мешает поменять тип поля в запросе ADOQuery? и вообще, Вы уверены, что кличество - целое? Кстати, попытайтесь выполнить этот запрос в Ассеss и посмотрите на тип возвращаемого значения


Вопрошающий   (2004-05-13 13:48:00) [9]

Ув. Мунька!

Вопрос идет именно о запросе.

> зачем Вам это надо?

ADOQueryField5: TIntegerField;

При открытии набора данных возникает естетсвенное исключение: Type mismatch for field 'Всего', expecting: Integer, actual: Float.


Мунька   (2004-05-13 13:40:00) [10]

Привести где? В делфийской программе? Нет ничего проще, записать

Sum : integer
Sum = Round(QUerySum.FieldByName('[Всего]').AsFloat );
Или Вас интересует, как привести в самом запросе? Тогда зачем Вам это надо?


Наверх

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