|
Работа с int как с беззнаковым
|
|||
---|---|---|---|
#18+
Привет всем. В таблице есть столбец "x" со счётчиком, которые обновляются по принципу x = x + y (здесь "y" - некая небольшая положительная величина). Как правильно взаимодействовать с целым типом так, чтобы при переполнении он опрокидывался так-же, как это бы сделал беззнаковый счётчик ? Или, может быть, как-то изобразить беззнаковый тип ? Может, домен как-то хитро настроить ? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2016, 13:58 |
|
Работа с int как с беззнаковым
|
|||
---|---|---|---|
#18+
kunjut, а bigint нельзя использовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2016, 15:31 |
|
Работа с int как с беззнаковым
|
|||
---|---|---|---|
#18+
Alexius, использую, но оно тоже знаковое. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2016, 14:21 |
|
Работа с int как с беззнаковым
|
|||
---|---|---|---|
#18+
kunjut, скорей всего без костылей тут тогда не обойтись. т.к. в базе есть только знаковые типы и ошибки с переполнениями судя по коду к ним прибиты. можно например использовать тип размером больше, чем необходимо и в триггерной функции отбрасывать старшие разряды. либо обновлять значение через хранимку и перехватывать ошибку с переполнением. возможно я неправильно понял задачу, для чего это необходимо? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2016, 15:30 |
|
Работа с int как с беззнаковым
|
|||
---|---|---|---|
#18+
Alexiusскорей всего без костылей тут тогда не обойтись. возможно я неправильно понял задачу, для чего это необходимо? Да, я примерно понял, что прямого пути нет. Надо сделать счётчики netflow. Я понимаю, что 64-битное целой со знаком в обозримом горизонте времени не переполнится, просто хотелось понять, как концептуально верно решать такую задачу. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 14:21 |
|
Работа с int как с беззнаковым
|
|||
---|---|---|---|
#18+
kunjut, Можно сделать свой домен на основе существующих типов, повесив ему неотрицательное ограничение. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 16:02 |
|
Работа с int как с беззнаковым
|
|||
---|---|---|---|
#18+
kunjutAlexius, использую, но оно тоже знаковое. так тем переполнение не будет... ну т. е. будет, но уже в другой жизни... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2016, 11:32 |
|
Работа с int как с беззнаковым
|
|||
---|---|---|---|
#18+
vyegorovдомен Ну, я изначально так и сделал, просто экспериментировать как-то руки не дошли: что будет, если формально должно произойти переполнение - ошибка (величина пытается стать отрицательной) или таки опрокидывание. Ну, ладно, спишем за не очень большой актуальностью уже :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 09:17 |
|
Работа с int как с беззнаковым
|
|||
---|---|---|---|
#18+
а что если просто использовать прирост? - например самое максимальное отрицательное число - это постоянная разница теперь если нам надо сохранить 500 то в таблице его записываем как 500 + разница (будет чтото типа "минус большое число") когда из памяти извлекаем то просто отнимаем постоянную разницу мы опять получим 500 и враги сразу непоймут что к чему-) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2016, 15:55 |
|
Работа с int как с беззнаковым
|
|||
---|---|---|---|
#18+
Legushkaа что если просто использовать прирост? - например самое максимальное отрицательное число - это постоянная разница теперь если нам надо сохранить 500 то в таблице его записываем как 500 + разница (будет чтото типа "минус большое число") когда из памяти извлекаем то просто отнимаем постоянную разницу мы опять получим 500 и враги сразу непоймут что к чему-) Я не понял немного, дружище. Можешь как-нибудь иначе сформулировать ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2016, 14:49 |
|
Работа с int как с беззнаковым
|
|||
---|---|---|---|
#18+
kunjut, Не надо изобретать велосипед. Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2016, 23:03 |
|
Работа с int как с беззнаковым
|
|||
---|---|---|---|
#18+
IgorNKkunjut, Не надо изобретать велосипед. Код: plsql 1.
Ну, что-ж, вариант неплохой, спасибо :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2016, 07:37 |
|
|
start [/forum/topic.php?fid=53&fpage=57&tid=1995839]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 286ms |
total: | 410ms |
0 / 0 |