![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Приведение типов [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 );
Или Вас интересует, как привести в самом запросе? Тогда зачем Вам это надо?