Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2013, 11:24   #1
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
Вопрос Хранение данных в таблице (сохранить ведущие нули)

Добрый день!
Столкнулся со следующей ситуацией.

Необходимо в столбике "торговая точка" (ТТ) в некой таблице сохранить номер этой точки. Значения вводятся вручную.

Например:

ТТ
***
001
002
004
015
156

При сохранении значения в таблице нули отбрасываются (Т.е. при вводе 001 записывается просто 1). В результате пришлось сделать поле текстовым и вводить ТТ 001. Если способ сохранять значение именно как 001, а потом соответственно считывать его?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 10.12.2013, 11:30   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

в числовом поле нет, для него что 01 что 1 одинаково, и 0 лишний, в тексте можно
для базы что то что это - пофик, только размер разный
для представления пользователю либо оставляете в тексте либо форматируете перед выводом, все просто
eval вне форума Ответить с цитированием
Старый 10.12.2013, 11:31   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

на мой взгляд - нет такой возможности! Либо число (и тогда нули не сохраняются), либо строка - тогда всё сохранится в целостности и сохранности.


p.s. а точно нужно нули хранить? Может хранить число и при выводе "добивать" нулями до заданной длины?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.12.2013, 11:43   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А при отображении нули слева добавить проблемно? Форматированием вывода например. А способа сохранить с незначащими нулями кроме хранения в текстовом виде не придумали. Можно и в запросе поизвращаться, преобразовав int в текст с незначащими нулями. Например так в сиквеле
RIGHT(REPLICATE('0',4)+CAST(Kod as varchar),5)
А вообще надуманная проблема

ADD

Ну да, за вами и не успеешь
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 10.12.2013 в 11:47.
Аватар вне форума Ответить с цитированием
Старый 10.12.2013, 12:04   #5
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Эти нули имеют свое значение, они жизненно необходимы !!!!!
На сколько я понял хранение в текстовом формате - выход из ситуации.
Зачем форматированный вывод... ?
Всем спасибо за СОВЕТЫ...
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 10.12.2013, 12:09   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
Зачем форматированный вывод... ?
а зачем тогда нули?
eval вне форума Ответить с цитированием
Старый 10.12.2013, 14:33   #7
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
а зачем тогда нули?
Есть определенные стандарты ведения и учета наименования и нумерации торговых точек, сложившиеся годами!!!!!! Вот зачем.
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 10.12.2013, 14:39   #8
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
Есть определенные стандарты ведения и учета наименования и нумерации торговых точек, сложившиеся годами!!!!!! Вот зачем.
и что? Вот БД на эти стандарты наплевать, да и вам должно быть. Вам же предлагают при выводе - средствами БД дополнять нулями. Внешне будет именно так как вы привыкли годами.
А вообще по сути можно (а может даже и нужно) таблицу сопоставления делать и не париться, типа:
id INT(12)
id_point varchar(20)
+ всякие дополнительные полезные поля, типа человеческое название точки продаж, адре, телефон, руководитель
ADSoft вне форума Ответить с цитированием
Старый 10.12.2013, 14:44   #9
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Спасибо!
Я понял по поводу средств БД, так и реализую.

Человек задал вопрос, я ответил!
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хранение данных админа и пользователей не трубующих регистрации в одной таблице? shockwave PHP 1 18.09.2013 11:35
Как сохранить много текста в таблице в delphi Юлия Александровна БД в Delphi 10 09.03.2010 14:01
Неудаётся сохранить изменения в таблице Herly Помощь студентам 3 21.12.2009 20:33
Хранение данных puKo Общие вопросы Delphi 17 21.09.2009 16:08
Сохранить данные в таблице (IBQery) Yuran БД в Delphi 7 11.07.2008 11:26