Форум: "Базы";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
ВнизСоздание тригера. Найти похожие ветки
← →
User_OKA (2003-10-17 06:40) [0]Есть справочник:
Fam Name Otch Fio
можно ли написать триггер для объединения содержимого 3 полей Fam Name и Otch и записи полученного значения в поле Fio, желательно код.
Заранее спасибо.
← →
ЮЮ (2003-10-17 06:43) [1]А ещё код по корректировке полей Fam Name и Otch при изменении поля Fio :-)
← →
stud (2003-10-17 09:12) [2]а зачем тебе это нужно??? если для отображения в каких-нибудь формах - так делай это в запросе
← →
Johnmen (2003-10-17 09:31) [3]см. документацию - создание вычисляемых (COMPUTED) полей.
← →
Alex_Bredin (2003-10-17 09:35) [4]короче говоря, поле FIO вообще удали - его существование ничем не может быть оправдано
← →
Alexandr (2003-10-17 10:42) [5]
SET TERM ^ ;
ALTER TRIGGER DRIVERS_BI
ACTIVE BEFORE INSERT POSITION 0
as
declare variable driver_im varchar(2);
declare variable driver_otch varchar(2);
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(GEN_DRIVERS_ID,1);
driver_im="";
driver_otch="";
driver_im=cast(substring(new.im from 1 for 2) as varchar(2))||"."; if (driver_im is null) then driver_im="";
if (driver_im=".") then driver_im="";
driver_otch=cast(substring(new.otch from 1 for 2) as varchar(2))||"."; if (driver_otch is null) then driver_otch="";
if (driver_otch=".") then driver_otch="";
if (new.fam is null) then new.fam="";
new.fullname=new.fam||" "||driver_im||" "||driver_otch;
END
^
SET TERM ; ^
← →
Johnmen (2003-10-17 10:56) [6]>Alexandr © (17.10.03 10:42)
Интересно получится, если не указано имя :)))
← →
Alexandr (2003-10-17 11:34) [7]ну... возможны нюансы...
можно еще подрихтовать чуть-чуть...
← →
User_OKA (2003-10-20 14:25) [8]Поля Fam, Name, Otch обязательны для заполнения.
Поле Fio редактироваться не будет. Организовываю для выбора из справочника.
Help!!!
← →
stud (2003-10-20 14:28) [9]так делай выбор
select fam||" "||name||" "||otch as fio, pole1. pol2.... from
тригер-то зачем?
← →
User_OKA (2003-10-20 14:48) [10]Выбор из справочника - чтобы пользователь на форме выбирал какое-то значение.
← →
mOOx_ (2003-10-20 14:51) [11]KEY_EMPLOYEE DMN_PK,
KEY_POSTTYPE INTEGER,
KEY_TEACHTYPE INTEGER,
FIRSTNAME DMN_STR1 NOT NULL,
MIDDLENAME DMN_STR1 NOT NULL,
LASTNAME DMN_STR1 NOT NULL,
FULLNAME COMPUTED BY (LASTNAME||" "||FIRSTNAME||" "||MIDDLENAME),
PHOTO DMN_DATA,
BIRTHDAY DATE NOT NULL,
SEX DMN_SEX,
CHARGEDATE DATE,
DISCHARGEDATE DATE,
INFORMATION DMN_INFO
);
Сам, надеюсь, разберешься, что к чему :)
← →
User_OKA (2003-10-20 14:54) [12]Нет не разберусь.
← →
mOOx_ (2003-10-20 14:56) [13]А это что такое!!!
FULLNAME COMPUTED BY (LASTNAME||" "||FIRSTNAME||" "||MIDDLENAME),
а-а-а-а-а-а-а-а-а-а-а-а-а-а, караул !!!
← →
stud (2003-10-20 15:03) [14]так форму опиши. что нужно выбирать и зачем?
← →
User_OKA (2003-10-20 15:08) [15]Есть справочник:
Fam Name Otch Fio
можно ли написать триггер для объединения содержимого 3 полей Fam Name и Otch и записи полученного значения в поле Fio, желательно код.
Идея в том, чтобы у пользователя на форме был ComboBox для выборки значения из справочника. Для этого я и хочу объеденить три поля Fam Name Otch в одно Fio.
Заранее спасибо.
← →
Vlad (2003-10-20 15:18) [16]Сто первый раз спрошу, а обязателен ли для этого триггер ?
FIO можно получить сложением трех полей(Fam,Name,Otch) в SQL запросе. Глупо, по-моему для этого создавать доп. поле в таблице.
← →
User_OKA (2003-10-20 15:21) [17]to> Vlad
Идея в том, чтобы у пользователя на форме был ComboBox для выборки значения из справочника.
← →
Vlad (2003-10-20 15:25) [18]У тебя будет ComboBox с полем "ФИО"! Но при этом не будет такого поля в базе, ни триггера.
Устроит ?
← →
stud (2003-10-20 15:25) [19]ну так что еще нужно????
так делай выбор
select fam||" "||name||" "||otch as fio, id from table
в комбобоксе отображаеш fio, поиск нужной записи по id вот и все. зачем тригер???????????
выбрал он из справочника выводи ему нужную запись-id
← →
mOOx_ (2003-10-20 16:23) [20]2Vlad © (20.10.03 15:18) [16]
Сто первый раз спрошу, а обязателен ли для этого триггер ?
Триггер - это действительно глупо
Глупо, по-моему для этого создавать доп. поле в таблице.
Если использовать computed, то по большому счету такое поле и полем то назвать нельзя :). Там веть кроме формулы ничего не храниться. Конечно, в данном случае, может и лучше запросом, но если записей много, то может по быстрее будет :)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.031 c