![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Большие числа int64/LargeInt [D6, FB]
O.O © (2007-03-11 07:28:00)Таблица FireBird, nип поля BigInt.
D6, IBX6.11
Очень неудобно что у TIBQuery.FieldByName и TIBQuery.ParamByName отсутствует тип AsLargeInt а только AsInteger, приходится действовать через преобразование строкового типа в int64 и наоборот
Это только у D6 или D7 тоже?
Никак подругому действовать нельзя?
O.O (2007-03-14 16:50:00) [1]
> Johnmen ©
Спасибо за совет, попробую
Johnmen (2007-03-13 18:11:00) [2]
> Johnmen © (11.03.07 13:35) [2]
> > отсутствует тип AsLargeInt а только AsIntegerЕсли внимательно
> читать справку, то станет ясно, что AsInteger приводит к
> такому целому, каким является поле. Напр., если оно BigInt,
> то приведётся к int64.
Ты сам-то справку читал? Похоже, нет, т.к. чушь пишешь.
AsInteger это приведение к 32-битному целому. А к int64 такого приведения нет.
> O.O
Нет никаких проблем.
Берём вариантное значение и его уже приводим к int64:
var i64 : int64;
i64:=FieldByName(...).Value;
Если вдруг значение у поля отсутствует, то перед этим проверь на null.
atruhin (2007-03-13 14:35:00) [3]> В инете есть ...уже бесплатные версии )))
А вот за это RO дают!
> Вопрос: насколько сложен перевод приложений с IBX на FIB+ ?
Есть мастера миграции, но сам не пользовался. А вообще в простом случае, замена компонент + поправить несколько методов.
~SerJant~ (2007-03-13 04:38:00) [4]
> O.O (12.03.07 16:48) [7]
Никаких сложностей, направление развития компонентов IBX и FIBPlus одно. В инете есть ...уже бесплатные версии )))
O.O (2007-03-12 16:48:00) [5]Спасибо, буду думать.
Видимо новые проекты буду планировать с FIB+.
Вопрос: насколько сложен перевод приложений с IBX на FIB+ ?
atruhin (2007-03-12 14:40:00) [6]В FIB+ много интересного, например:
централизованная обработка исключений;
кэширование метеданных и блоб полей (актуально для меделенных линий);
нормальное восстановление соединения (хотя не знаю может и в IBX поправили);
и много мелких удобств.
O.O (2007-03-12 14:19:00) [7]
> atruhin © (12.03.07 13:39) [4]
Наверно Вы правы насчёт FIB+, хотя до выявления подобной недоработки IBX вполне устраивал. А сам факт выглядет странно, ведь формат TLargeIntField есть!, и с ним работает всё нормально, но при динамическом создании SQL запроса сами понимаете :(
atruhin (2007-03-12 13:39:00) [8]Давно пора купить FIB+, там очень много интересного.
С int64 работаю постоянно, все ОК
O.O (2007-03-12 07:48:00) [9]
> Johnmen © (11.03.07 13:35) [2]
Неприводится, пробовал.
Хорошо что хоть IBStoredProc.ParamByName('NameParam').AsCurrency берет значение int64.
Johnmen (2007-03-11 13:35:00) [10]
> отсутствует тип AsLargeInt а только AsInteger
Если внимательно читать справку, то станет ясно, что AsInteger приводит к такому целому, каким является поле. Напр., если оно BigInt, то приведётся к int64.
atruhin (2007-03-11 08:53:00) [11]C TIBxxx давно не работал, но например у FIB+, TFIBQuery.FielbByName() имеет AsInt64.
TFIBDataset при использовании AsInteger работает с int64.