![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание тригера. [D5, IB6.x]
User_OKA © (2003-10-17 06:40:00)
Есть справочник:
Fam Name Otch Fio
можно ли написать триггер для объединения содержимого 3 полей Fam Name и Otch и записи полученного значения в поле Fio, желательно код.
Заранее спасибо.
mOOx_ (2003-10-20 16:23:00) [1]
2Vlad © (20.10.03 15:18) [16]
Сто первый раз спрошу, а обязателен ли для этого триггер ?
Триггер - это действительно глупо
Глупо, по-моему для этого создавать доп. поле в таблице.
Если использовать computed, то по большому счету такое поле и полем то назвать нельзя :). Там веть кроме формулы ничего не храниться. Конечно, в данном случае, может и лучше запросом, но если записей много, то может по быстрее будет :)
stud (2003-10-20 15:25:00) [2]
ну так что еще нужно????
так делай выбор
select fam||" "||name||" "||otch as fio, id from table
в комбобоксе отображаеш fio, поиск нужной записи по id вот и все. зачем тригер???????????
выбрал он из справочника выводи ему нужную запись-id
Vlad (2003-10-20 15:25:00) [3]
У тебя будет ComboBox с полем "ФИО"! Но при этом не будет такого поля в базе, ни триггера.
Устроит ?
User_OKA (2003-10-20 15:21:00) [4]
to> Vlad
Идея в том, чтобы у пользователя на форме был ComboBox для выборки значения из справочника.
Vlad (2003-10-20 15:18:00) [5]
Сто первый раз спрошу, а обязателен ли для этого триггер ?
FIO можно получить сложением трех полей(Fam,Name,Otch) в SQL запросе. Глупо, по-моему для этого создавать доп. поле в таблице.
User_OKA (2003-10-20 15:08:00) [6]
Есть справочник:
Fam Name Otch Fio
можно ли написать триггер для объединения содержимого 3 полей Fam Name и Otch и записи полученного значения в поле Fio, желательно код.
Идея в том, чтобы у пользователя на форме был ComboBox для выборки значения из справочника. Для этого я и хочу объеденить три поля Fam Name Otch в одно Fio.
Заранее спасибо.
stud (2003-10-20 15:03:00) [7]
так форму опиши. что нужно выбирать и зачем?
mOOx_ (2003-10-20 14:56:00) [8]
А это что такое!!!
FULLNAME COMPUTED BY (LASTNAME||" "||FIRSTNAME||" "||MIDDLENAME),
а-а-а-а-а-а-а-а-а-а-а-а-а-а, караул !!!
User_OKA (2003-10-20 14:54:00) [9]
Нет не разберусь.
mOOx_ (2003-10-20 14:51:00) [10]
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:48:00) [11]
Выбор из справочника - чтобы пользователь на форме выбирал какое-то значение.
stud (2003-10-20 14:28:00) [12]
так делай выбор
select fam||" "||name||" "||otch as fio, pole1. pol2.... from
тригер-то зачем?
User_OKA (2003-10-20 14:25:00) [13]
Поля Fam, Name, Otch обязательны для заполнения.
Поле Fio редактироваться не будет. Организовываю для выбора из справочника.
Help!!!
Alexandr (2003-10-17 11:34:00) [14]
ну... возможны нюансы...
можно еще подрихтовать чуть-чуть...
Johnmen (2003-10-17 10:56:00) [15]
>Alexandr © (17.10.03 10:42)
Интересно получится, если не указано имя :)))
Alexandr (2003-10-17 10:42:00) [16]
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 ; ^
Alex_Bredin (2003-10-17 09:35:00) [17]
короче говоря, поле FIO вообще удали - его существование ничем не может быть оправдано
Johnmen (2003-10-17 09:31:00) [18]
см. документацию - создание вычисляемых (COMPUTED) полей.
stud (2003-10-17 09:12:00) [19]
а зачем тебе это нужно??? если для отображения в каких-нибудь формах - так делай это в запросе
ЮЮ (2003-10-17 06:43:00) [20]
А ещё код по корректировке полей Fam Name и Otch при изменении поля Fio :-)