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

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

ADO поле Int64


novichek ©   (2011-04-04 18:40:00) 

Подскажите пожалуйста, создаю access базу,
Provider=Microsoft.Jet.OLEDB.4.0

как при создании таблицы объявить поле в 64 бита?

пробывал create table my (
                                      kod BigInt
                                      kod Int64
                                      kod Integer8
                                   )

везде матюкается блин..


Ega23   (2011-04-06 19:48:00) [1]


> при большом количестве записей держать ключевой поле строку
> это кощунство по мне!


Ты путаешь уникальное 16-байтное числои строковый формат его представления хххххххх-хххх-хххх-хххх-хххххххххххх


Anatoly Podgoretsky   (2011-04-06 19:40:00) [2]

> novichek  (04.04.2011 23:05:12)  [12]

Ты что в строке хранишь чтоли? Или ты путаешь преставление с хранением.


sniknik   (2011-04-05 10:49:00) [3]

да, мелкософт со своим "репликатором" в акцессе конечно знахарь, и я рад что я в их рядах.


DiamondShark   (2011-04-05 10:44:00) [4]


> sniknik ©   (04.04.11 23:21) [15]
> для репликации используется гуид.

Это у знахарей используется.
А в объективной реальности используется любое уникальное значение, которое удобно/целесообразно использовать.


sniknik   (2011-04-04 23:21:00) [5]

для репликации используется гуид.
а квадратные колеса обычно не  крутятся, и вовсе не из-за того, что на преобразовании из дробного к целому и обратно битики теряются.


novichek   (2011-04-04 23:13:00) [6]

если бы Вы внимательно читали я писал про репликацию


sniknik   (2011-04-04 23:12:00) [7]

гуид это не строка.

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


novichek   (2011-04-04 23:05:00) [8]

а причем тут это,  мне и 64 бита хватает для генерации уникального ID

при большом количестве записей держать ключевой поле строку это кощунство по мне!


sniknik   (2011-04-04 23:02:00) [9]

> разве Int64 16 байт?
гуид


novichek   (2011-04-04 22:35:00) [10]

насколько я понимаю 63 бита  и один для знака..


novichek   (2011-04-04 22:32:00) [11]

немножко не понял, про какие 12 и 16 байт говорится?

разве Int64 16 байт?


sniknik   (2011-04-04 22:04:00) [12]

> у меня поля Int64 под ID уникальный, который генерирую типа GUID только ровно в 64 бита.
под GUID нужн использовать GUID, и не забивать мозг проблемами типа "а будут ли глюки" если в 12 байтовый тип записать 16 байтное значение...


novichek   (2011-04-04 21:34:00) [13]

не могу сообразить не появятся ли глюки..

у меня поля Int64 под ID уникальный, который генерирую типа GUID только ровно в 64 бита.

беззнаковое целое число планировал под ID этот...

синхронизацию/репликацию делаю через промежуточные ADO базу (х.з. зачем, но показалось удобней и по размеру небольшая и стабильная) путем создания временной Access базы с таблицами и наполнением её изменившимися записями. ну а на сервере корректировка обратная..
так вот не полетят ли у меня ID мои уникальные?
по большому байты есть байты, как записал так и будет, а так х.з. что с этими конвертациями знаковых, не целых числах будет..
туплю наверное..


sniknik   (2011-04-04 21:03:00) [14]

что означает не больше 4 знаков после запятой... (у "натурального" BCD 99... вроде бы, насколько помню)


sniknik   (2011-04-04 21:01:00) [15]

>  знать бы ещё что это )
BCD в delphi ограниченная, в базах сделана через currency.


novichek   (2011-04-04 20:44:00) [16]

хм.. назначил   ADOQuery.EnableBCD:= false;
вроде бы прокатило..
знать бы ещё что это )


novichek   (2011-04-04 20:38:00) [17]

блин, не тут то было )

перевожу базу с FireBird на ADO.
создал поле decimal в ADO

при попытке

ADO.fileds[0].variant:=  firebird.fileds[0].variant;  //  Decimal:= Int64

вылетает с ошибкой Overflow while convert variant of type Int64 into type Currency..

перепробывал уже вроде бы все.. мыслей нет.. может что подскажите?


novichek   (2011-04-04 18:51:00) [18]

хм..   -10^28-1 до 10^28-1

спасибо!  век живи век учись..


clickmaker   (2011-04-04 18:47:00) [19]

decimal?


Наверх

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