Страница 1 из 1

SUM для текста

Добавлено: 26 ноя 2006, 16:53
shempeev
Ворос у меня такой

Я так понял что агрегирующих функций для concat'а текста
нет

Как написать UDF функцию на delphi для соединения текста записей

(У меня проблема возникла именно с агрегирующими функ. , т.е как передать уже имеющийся текст в функцию и прикрепить к нему следующий текст)

в запросе мне нужно примерно след.:

select main.sur, (select <CONCAT_STRING (fam.sur)> from fam where fam.idz=main.idz) as fam_ from from main

FireBird 1.5

Заранее спасибо

Добавлено: 26 ноя 2006, 17:47
mdfv
А не проще процедурой сделать?

Добавлено: 26 ноя 2006, 18:01
shempeev
mdfv писал(а):А не проще процедурой сделать?
Всмысле сделать временную таблицу и туда это все?

Добавлено: 26 ноя 2006, 19:15
mdfv
что-то вроде этого

Код: Выделить всё


for select sur,idz  from main 
into :sur,:midz
do
begin
  fam_ ='';  
  for select sur  from fam 
  where fam.idz=:midz
  into :fsur
  do
  fam_=fam_||fsur;

  suspend;

end

Добавлено: 26 ноя 2006, 19:55
shempeev
mdfv писал(а):что-то вроде этого

Код: Выделить всё


for select sur,idz  from main 
into :sur,:midz
do
begin
  fam_ ='';  
  for select sur  from fam 
  where fam.idz=:midz
  into :fsur
  do
  fam_=fam_||fsur;

  suspend;

end
да да так
уже и начял делать

значит думаем правильно

Добавлено: 27 ноя 2006, 12:06
WildSery
shempeev писал(а):значит думаем правильно
Не забудь также подумать над переполнением этой строки.
Правильный путь - определиться с её максимумом, и вставить проверку, чтобы если присоединение следующего значения его превысит, резать строку.