Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.31;
Скачать: CL | DM;

Вниз

Константы в MSSQL   Найти похожие ветки 

 
Гаврила ©   (2004-10-01 10:47) [0]

В некой таблице MSSQL 2000 есть поле
в котором по логике системы все значения должны находиться в диапазоне 1..5

Вопрос - как правильно обеспчить невозможность записи неверного значения?
тип поля  - TinyInt

сейчас сделано так - добавление и модификация записей через хранимые процедуры (их несколько), где на входе проверяется корректность значения, и в случае неудачи поднимается исключение.
Но - таких процедур - несколько, и везде эти "константы" - 1 и 5  определены просто числами.
Нельзя ли объявить именно константами где-то в одном месте, и везде использовать? Везде - в смысле в разных процедурах.
Так как диапазон может и изменится ,и хотелось бы поменять константы в одном месте, а не лазить по всем процедурам

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


 
stone ©   (2004-10-01 10:53) [1]

User Define Data Type + Rule


 
Ega23 ©   (2004-10-01 10:55) [2]

Нельзя ли объявить именно константами где-то в одном месте, и везде использовать? Везде - в смысле в разных процедурах.
Так как диапазон может и изменится ,и хотелось бы поменять константы в одном месте, а не лазить по всем процедурам


Я обычно завожу таблицу xConfig :
create table xConfig
(
   CfgNam         char(16)              not null
       default " ",
   WORKCOD        smallint              not null
       default 0,
   MODCOD         tinyint               not null
       default 0,
   opercod        int                   not null
       default 0,
   CfgNum1        int                   not null
       default 0,
   CfgNum2        int                   not null
       default 0,
   cfgStr1        varchar(4096)         not null
       default " ",
   cfgStr2        varchar(4000)         not null
       default " ",
   datin          datetime              not null
       default "1900",
   datout         datetime              not null
       default "1900",
   cfgtxt         text                  null    ,
   cfgImg         image                 null    
)


В ней по CfgNam всегда можно какие-то константы хранить.


 
Гаврила ©   (2004-10-01 11:00) [3]


> [1] stone ©   (01.10.04 10:53)


Хоть и не так ,но спасибо :-)
Rule - для обратной совместимости, но, разбираясь, я узнал, что оказывается есть некие Check Constraint  :-)


 
BoxTer   (2004-10-01 12:26) [4]

вот оно и есть - констрейнты.
например
CREATE TABLE jobs
(
  job_id  smallint
     IDENTITY(1,1)
     PRIMARY KEY CLUSTERED,
  job_desc        varchar(50)     NOT NULL
     DEFAULT "New Position - title not formalized yet",
  min_lvl tinyint NOT NULL
     CHECK (min_lvl >= 10),
  max_lvl tinyint NOT NULL
     CHECK (max_lvl <= 250)
)



Страницы: 1 вся ветка

Текущий архив: 2004.10.31;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
3-1096615743
Bes
2004-10-01 11:29
2004.10.31
как обновить DBGRID?


1-1097847015
Анонимщик
2004-10-15 17:30
2004.10.31
Аппроксимация контура


14-1097680643
peypivo
2004-10-13 19:17
2004.10.31
:-)


4-1096305827
Kolan
2004-09-27 21:23
2004.10.31
Проблема с регионом


14-1097247361
fag2000
2004-10-08 18:56
2004.10.31
Помогите перевести PHP strftime в человеческие дату и время.