![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как через "insert into" в одно поле передать несколько значений [D6, Firebird 1.0]
nik7777 © (2004-07-09 13:53:00)Приветствую всех Мастеров!!!
Такая вот задача.
Я пишу триггер, который будет брать новые значения из полей (их типа разные) и записывать в одно поле в другую таблицу (тип этого поля - Blob). Как мне записать все эти значения в одно поле, при том, чтобы каждое новое значение было на следующей стоке.
Спасибо заранее!!!
nik7777 (2004-07-10 09:44:00) [1]А какже все таки быть с Blob полями? Как мне оттуда инфу вытащить во все туже самую переменную?
Johnmen (2004-07-09 15:46:00) [2]Привет !
Для таких случаев (и для других) существует IF
:)
Соловьев (2004-07-09 15:46:00) [3]
> [11] zorik © (09.07.04 15:45)
или ХП, или UDF или перейти на ФБ1.5 - case, coalesce etc.
zorik (2004-07-09 15:45:00) [4]Здраствуйте!
А если есть пустые поля (null) - тогда это не работает.
nik7777 (2004-07-09 14:23:00) [5]Johnmen
:)
Балин, парюсь уже. Спасибки!!! ;)
Johnmen (2004-07-09 14:16:00) [6]:)
См. [7]
nik7777 (2004-07-09 14:11:00) [7]Johnmen
Аха, спасибо, что-то я совсем забыл, что в Интербейсе объединение так делается. А вот еще. Можно будет каждое значение переносить на следующую стоку?
Johnmen (2004-07-09 14:08:00) [8]
Temp = NEW.FlatID || '
' || NEW.ClientID || '
' || NEW.RegistrationDate || '
' || NEW.DateFinally;
Каждое слово будет разделено концом строки.
Или что тебе надо ?
nik7777 (2004-07-09 14:05:00) [9]Вот пример, который я щас ваяю. Не судите строго, знаю что не правильно, просто я решил показать вам наглядно как мне нужно. Типа как в Делфях, просто объединяешь значения в переменную, а потом делаешь с готовой переменной все что тебе заблагорасудится.
set term !! ;
create trigger TR_AF_IN_Brones for Brones
after insert as
Declare Variable Temp varchar(500);
begin
Temp = NEW.FlatID + NEW.ClientID + NEW.RegistrationDate + NEW.DateFinally;
insert into Replication (ID,TableName,Preference,DataID,DataLog)
values(0,'BRONES','INSERT',NEW.ID,:Temp);
end !!
set term ; !!
Соловьев (2004-07-09 13:58:00) [10]опоздал :)
> чтобы каждое новое значение было на следующей стоке.
это ты уже при просмотре можешь выводить как заблагоросудится - придумай разделитель типа как в хтмл - <BR>
Соловьев (2004-07-09 13:57:00) [11]и функция CAST
Johnmen (2004-07-09 13:57:00) [12]INSERT INTO ... VALUES('first,
second,
...
handred');
Вот только в блоб вряд ли получится...
А впрочем, попробуй.
Reindeer Moss Eater (2004-07-09 13:56:00) [13]И преобразование к типу varchar других типов
Reindeer Moss Eater (2004-07-09 13:55:00) [14]Конкатенация строк.