On-line: Andrey, Haz, гостей 1. Всего: 3 [подробнее..]
АвторСообщение
администратор




Пост N: 6878
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.07.18 22:11. Заголовок: DBF -> ADT


Понадобилось конвертнуть DBF базу в формат ADT (ADS)
У DBF изначально было поле "tst","N",12,0
Ну так и сделал dbCreate( "Test", {{"Tst","Numeric",12,0}} ,"ADSADT",.t.,"test")
Test->(dbappend())
TEst->(browse())
Вбиваю 12 цифр и сука падает прога.
или так
dbCreate( "Test", {{"Tst","Integer",12,0}} ,"ADSADT",.t.,"test")
Test->(dbappend())
TEst->(browse())
Вбиваю 12 цифр и снова падает прога.

Делаю аналог под DBF
dbCreate( "Test", {{"Tst","N",12,0}} ,"ADSCDX",.t.,"test")
Test->(dbappend())
TEst->(browse())
Вбиваю 12 цифр и все норм

Чего хочет ADS от меня ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 9 [только новые]


Администратор




Пост N: 3780
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 19.07.18 22:31. Заголовок: Падает с каким матюк..


Падает с каким матюком ?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3781
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 19.07.18 22:36. Заголовок: Как вариант: может в..


Как вариант: может внутреннее представление у таких типов int32. А там предельные значения:

#define LONG_MAX 2147483647L /* maximum signed long value */
#define ULONG_MAX 4294967295UL /* maximum unsigned long value */

попробуй набрать 2147483647, потом 2147483648
или 4294967295, потом 4294967296
Что будет ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6880
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.07.18 22:44. Заголовок: Pasha пишет: Падает..


Pasha пишет:

 цитата:
Падает с каким матюком ?


заполнил все 12 цифр и упал ADSADT/5179 Error 5179: The result value exceeded the given buffer size
после с этим при конверте
ADSADT/5012 Error 5012: The field definition specified for the table was not valid. Numeric length must be greater than one.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1282
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 20.07.18 08:54. Заголовок: https://devzone.adva..


https://devzone.advantagedatabase.com/dz/webhelp/Advantage8.1/server1/adt_field_types_and_specifications.htm

В adt

Fixed-length (exact ASCII representation) numeric. One byte is reserved for the sign of the numeric value. If the decimal value is not zero, one additional byte is used for the decimal point.

В dbf

Numeric

Fixed-length (exact ASCII representation) numeric.

То есть в adt нужно плюсовать два пункта под сигн и поинт

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3782
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 20.07.18 11:37. Заголовок: Dima пишет: упал A..


Dima пишет:

 цитата:
упал ADSADT/5179 Error 5179:


5179 AE_VALUE_OVERFLOW

Advantage Error Guide
This is the first topic This is the last topic Feedback on: Advantage Database Server - 5179 AE_VALUE_OVERFLOW Advantage Error Guide error_5179_ae_value_overflow Advantage Web Development > Advantage Ruby API Support > Advantage Ruby API Support / Dear Support Staff, Mail us feedback on this topic!
5179 AE_VALUE_OVERFLOW

Advantage Error Guide
This is the first topic This is the last topic Mail us feedback on this topic!
Problem: The value cannot be stored in the designated column. For example: this error will be returned when attempting to store into an Integer column a numeric value that is outside the range -2,147,483,647 to 2,147,483,647. See ADT Field Types and Specification.

Solution: Ensure the numeric value to be stored in a column is within the supported range or restructure (i.e., ALTER) the table to ensure that the column can stored the expected values.

Чуйка таки меня не подвела. Похоже эти красавцы считают, что если нет десятичных знаков, то значение надо представлять как целое. А 64-битные целые они не сделали, и поэтому значение не влазит во внутренний формат представления.
Вот тебе и сайбэз. Харбор в этом отношении куда умнее.
Кстати, ads 64-битные версии имеются ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6881
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.07.18 11:41. Заголовок: Pasha пишет: Кстати..


Pasha пишет:

 цитата:
Кстати, ads 64-битные версии имеются ?


Да

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3783
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 20.07.18 11:59. Заголовок: А какая версия дает ..


А какая версия дает глюк с N 12, 0 ? 32 или 64 бита ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6882
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.07.18 12:03. Заголовок: Pasha пишет: А кака..


Pasha пишет:

 цитата:
А какая версия дает глюк с N 12, 0 ? 32 или 64 бита


32
На 64 не проверял , думаю так же будет.
Если в Harbour (Clipper) поле N 12,0 то в ADT надо делать Numeric 13,0
Если в Harbour (Clipper) поле N 1,0 то в ADT надо делать Numeric 2,0


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1285
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 20.07.18 13:14. Заголовок: Dima пишет: Вот теб..


Pasha пишет:

 цитата:
Вот тебе и сайбэз.


Паша, там от сайбэйза только криво встроенный в ресурсы логотип. За три с лишним года движухи ноль по продукту, просто скупили мелкого конкурента создававшего большие проблемы при продаже дорогих бубнов, в которые нужно стучать после покупки их основного продукта .

Переполнение возникает потому,что в adt нужно при планировании длины поля учитывать знак и точку, и в спецификации формата они об это явно указали.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 489
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет