powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Numeric & Integer
5 сообщений из 5, страница 1 из 1
Numeric & Integer
    #36443571
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если есть поле код(числовое), десятичных нет, понятно, что если арифмитических операций нет, то можно выбрать и символьное, но по некоторым причинам(ну легче сделать наращивание кода на единицу и т.д.), лучше выбрать всё таки числовое, но какое Numeric (7,0) или Integer, вроде бы Integer занимает меньше места, но когда начинаешь выводить в отчёт(str(kod,5)), никогда не знаешь, сколько цифр будет в этом коде, поэтому нужно дополнительно определить максимальную длину этого кода, а потом загнать в переменную, чтоб вывести в отчёт, и потом он может ещё и расползтись (str(kod,len_koda))...короче, кто как и почему выбирает тип для кода...
...
Рейтинг: 0 / 0
Numeric & Integer
    #36443910
igorbik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
q1w1e1,

Однажды я получил в наследство программу, где номера счетов шли по порядку на 1 наращиваясь постоянно. Программа сильно глючила, считала неверно, в сети конфликтовала и проч.
Я потратил несколько месяцев, пока хоть как-то привел в порядок расчеты и устранил некоторые конфликты доступа.
И вот в начале этого года со всех точек, где она установлена, стали мне звонить о том, что прога не работает. Я в этот момент был в загрантурне. За 20 минут на моем мобиле не осталось ни копейки денег (роуминг съел!), денег за поддержку за декабрь мне наполовину сняли, путешествие было испорчено.
И что же оказалось? А то, что я не обратил внимание, что для номеров счетов предназначалось поле N 5.0, а номера уже с этого года пошли шестизначные. Пред. программер, видимо, не знал типа INTEGER, и везде тыкал то N5.0, то N7.0 и т.п. Пришлось везде, где невозможно заранее просчитать размер чисел, но зная, что они должны быть целыми, исправлять с Numeric на Integer, переписывать формы и репорты: удлинять поля для более длинных чисел и прочее. Харкаюсь еще до сих пор.
Так что я, надеюсь, убедил наглядно, какой тип данных и где нужно использовать.
Насчет длины полей в репортах,- так придется сделать запас на предполагаемую длину числа.
...
Рейтинг: 0 / 0
Numeric & Integer
    #36444086
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Есть поле" - это не постановка задачи. Чтобы посоветовать что-то вразумительно, нужно знать, что в этом поле хранится. Точнее, как используется та информация, которая в нем записана. Для каких целей предназначена

Из Вашего описания совершенно не ясно, о чем идет речь. Это какой-то номер? Номер чего? Зачем его надо обязательно конвертировать в символьную строку? Зачем определять его длину? Зачем его вообще надо отображать?
...
Рейтинг: 0 / 0
Numeric & Integer
    #36446058
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это код записи, который в идеале(и на практике тоже), является уникальным, понимаю что должен быть код записи и код товара, но на практике(в моей, это конечно плохо и т.д., но пока не конфликтов не было) эти два кода совпадают..., в различных отчётах, обычно указывается код товара(он же код записи) и наименование
хоть так
@ 1,1 say str(kod,5)+"|"+naim
хоть так
.cell(1,1).value=str(kod,5)+"-"+naim
В общем я всё понял...:-)
...
Рейтинг: 0 / 0
Numeric & Integer
    #36446639
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
q1w1e1Это код записи, который в идеале(и на практике тоже), является уникальным, понимаю что должен быть код записи и код товара, но на практике(в моей, это конечно плохо и т.д., но пока не конфликтов не было) эти два кода совпадают...,
Лично для себя я сформулировал такой принцип.

Если идентификатор записи используется исключительно для организации ссылочной целостности и никак, никоим образом, не доступен для просмотра/изменения/создания пользователем, то лучше его делать Integer.

Если же идентификатор записи предназначен для анализа пользователем (скорее всего и создается пользователем. Точнее, пользователь может подправить значение сформированное по умолчанию), то лучше его делать символьным.

Почему символьным? Да потому, что крайне редко пользователи довольствуются только числовой идентификацией. Как правило, они хотят еще и символы добавлять.

Кроме того, для пользователей становится принципиально важен порядок отображения записей. В смысле, в порядке возрастания идентификаторов. А это значит, что коды становятся вида "ABC-0001-DEF". Ведущие нули обеспечивают правильность сортировки числовых данных
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Numeric & Integer
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]