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

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

Как через "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]

Конкатенация строк.


Наверх

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