Итак, один из наших проектов для одного из наших клиентов позволяет печатать чеки. Одно из полей, которые идут на проверку, - это номер чека. В настоящее время мы сохраняем номера чеков (для целей отчетности) в базе данных как тип int.Инкрементный номер из строки
Проблема в том, что клиент хочет увеличить размер номера чека до 20 цифр. Одной из особенностей проекта является автоматическое присвоение контрольных номеров каждой проверке при печати нескольких проверок.
Так, например, они печатают 3 чека. Они вводят начальный контрольный номер как «100123», а затем нажмите кнопку «Назначить контрольные номера» в точке «ведьма». Первая проверка, которую нужно распечатать, получает введенный «100123», и каждой следующей проверке присваивается одинаковое число, увеличенное на один так вторая проверка получит «100124», третий получит «100125» и так далее.
Проблема в том, что они хотят иметь 20-значный контрольный номер, который слишком велик для любого числового типа данных. Мое единственное решение - изменить номер проверки на строку/varchar, но это приведет к поломке процесса «Назначить контрольные номера» для нескольких проверок, поскольку я не могу увеличить строку, чтобы получить следующий номер.
Любые идеи о том, как я мог бы выполнить такое требование?
Почему они хотят 20-значный номер чека? Может ли такое число соответствовать линии MICR? – Amy
Вы пробовали 'BigInteger'? https://msdn.microsoft.com/en-us/library/system.numerics.biginteger(v=vs.110).aspx – Dmitry
[Десятичный] (https://msdn.microsoft.com/en-us/library /364x0z75.aspx) поддерживает 28 - 29 значащих цифр. – crashmstr