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

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

Type mismatch? [D6, IB5.x]


off ©   (2003-10-13 08:23:00) 

Приветствую вас труженики цифровых тылов, мастера! Такая проблема:
Работаю на FireBird. В табличке есть три поля (условно, т.к. остальные нас не интересуют)
- CHARGE (integer)
- SUMM (integer)
- USERN (char).
Пишем след. СиКУЛь select sum(CHARGE) CHARGE, sum(SUMM) SUMM, USERN fromNACHDEC whereUSERN="Off" group byUSERN
В результате, IBExpert выполняет этот СиКуЛь без всяких претензий и выдает в результате одну строку с суммами по двум полям и сгруппированную по третьему.
Законяем этот же сикуль в делфю в IBQuery1.SQL.Text:="..."
Выполняем и в результате получаем ошибку с сообщением несоотвествии полученого типа (largeInt) объявленному (Integer).
Когда я не поленился и добавил два новых поля SUMM1 b SUMM2 (LargeInt), то все заработало и конечном итоге мне таки удалось получить заветную сумму равную 566, а причем здесь largeInt я так и не понял.
Кто-нибудь может объяснить?


Off   (2003-10-13 12:07:00) [1]

> Жук ©
А если поле будет numeric (12,2), то при суммировании проблем не возникнет.


Жук   (2003-10-13 11:52:00) [2]

Потому что указанные поля - Integer, ф-ция sum(Integer) - LargeInt


Off   (2003-10-13 11:41:00) [3]

Так вопрос в то как раз в том почему так получилось, а не как лечить :-)


Жук   (2003-10-13 11:36:00) [4]

Зачем такой гемор, когда всё лечится :

> Johnmen © (13.10.03 09:36) [4]
> Дай алиасам полей имена, отличные от имен полей.

?


Off   (2003-10-13 09:50:00) [5]


> Johnmen © (13.10.03 09:36) [4]

Это я в квери два новых поля добавил типа LargeInt назвал их как сказано и соответственно изменил сикуль :-)


Off   (2003-10-13 09:44:00) [6]

> Johnmen © (13.10.03 09:36) [4]
Это я в квери новые поля добавил типа LargeInt


Johnmen   (2003-10-13 09:36:00) [7]

Дай алиасам полей имена, отличные от имен полей.

>Когда я не поленился и добавил два новых поля SUMM1 b SUMM2 (LargeInt),

Это про что ?


stud   (2003-10-13 09:34:00) [8]

попробуй просто удалить поля из квери.


Off   (2003-10-13 09:32:00) [9]

В том то и дело что типы полей везде(и в таблице и в квери) Integer. Да и тип LargeInteger, ни делфя, ни IBExpert не знают (другое дело Int64).


stud   (2003-10-13 09:22:00) [10]

а в куери поля добавлял через редактор полей, и потом типы полей не менял?


Наверх

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