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