Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как правильно сделать ID документа с префиксом (ЖАС-3420)? [D7, IB6.x]


Страницы:   1 2

jiny ©   (2005-06-21 12:41:00) 

Сейчас проблема следующая :
раньше поле ID было Integer на триггере Before Insert(GEN_ID),
сейчас возникла необходимость сделать ID  с префиксом, так как собираемся установить программу в филиалы (но об этом в следующем вопросе). ID должен быть следующего вида :
Префикс||"-"||Значение_генератора, например :
ЖАС-27345
Поле ID сейчас VARCHAR(30) CHARACTER SET WIN1251
Изменил код триггера на новый :
 new.id=new.id||"-"||cast(gen_Id(newNumFr1_1,1) as Varchar(20)  character set win1251);
потом пробовал так :
 new.id=cast(new.id as varchar(5) character set win1251)||CAST("-" as varchar(1) character set win1251)||cast(gen_Id(newNumFr1_1,1) as Varchar(20)  character set win1251);
При вводе данныхвыдает ошибку :
DataType conversion error, перед Commit записи устанавливаю ID="ЖАС"
Помогите, чем смогите ?)


jiny   (2005-06-21 13:17:00) [21]

ID символьного типа научил 1С :), насчет Johnmen ©   (21.06.05 12:50) [2] (2) - можно подумать,

а насчет :
<<А че филиалы на сделать отдельным полем?
И выборки по ним легче будет сделать>>

хочу что нить универсальное, тем более что пересчет остатков  товаров у меня делается по заранее предопределенным критериям, полям, единственное, при смене текущего склада меняю аналитику по полю NUM_MAINFIRM, где оно означает номер текущего склада(филиала)
Не думаю что это как то повлияет на правильность работы,
т.к. я уже в ДЕМО базе переделал все поля на VARCHAR(30)
попробовал погонять справочник товаров, вроде не ругается, работает быстро, остатки пересчитывает "на лету"
P.S. просто возникла необходимость репликации баз данных офиса с филиалами, вот и хочу каждому префикс присвоить и экспортировать/импортировать записи без боязни нарушения уникальности, хотя если действительно добавить поле Prefix и сделать Primary index "ID,prefix" может че и получиться. Обложился статьями по репликации с ibase.ru и парюсь.


alexeis   (2005-06-21 12:51:00) [22]

А че филиалы на сделать отдельным полем?
И выборки по ним легче будет сделать


Sergey13   (2005-06-21 12:50:00) [23]

А не лучше сделать второе поле, которое будет ссылаться на справочник филиалов или чего у вас там? Его соответственно добавить в ключ.

ЗЫ:Репликацией занимаетесь? Там все намного сложнее, ИМХО, чем просто сменить тип ключа.


Johnmen   (2005-06-21 12:50:00) [24]

1. Почему же ID символьного типа ??? Кто научил ?
2. Чётко разделяя принципы хранения и отображения, добавь поле, где будешь хранить ЖАС.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо