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

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

Хранимая процедура. Перевод строки [D7, FireBird]


Страницы:   1 2

Xmen ©   (2008-03-26 15:02:00) 

написал такую хранимую процедуру. процедура вводит в одну строку данные совподающие заданному значению.

CREATE PROCEDURE mytable(main_id integer)
returns (mytexts varchar(250))
as
declare variable rez varchar(50);
declare variable per varchar(50);
declare variable condat varchar(10);

begin
mytexts='';
 for select (select p.personal_name from personal p where p.id=e.executor_id), e.resolution, e.control_date
  from incoming_executor e
  where e.incoming_id=:main_id
  into :per, :rez, :condat
   do
    begin
     if (per is null) then per='';
     if (rez is null) then rez='';
     if (condat is null) then condat='';
     mytexts=mytexts||'||'||:per||' '||:rez||' '||:condat;
    end
 suspend;
end

Как можно сделат так чтобы после определенного слово остальное вводился в другу строку. Например у меня сейчас так
||Иванов И.Н. на выполнения 29,02,2008||Петров С.В. на рассмотрения 28,02,2008
Должно быт
Иванов И.Н. на выполнения 29,02,2008
Петров С.В. на рассмотрения 28,02,2008
Шаманство || и #13 не получился

Вызиваю процедуру так
select  i.*,(select mytexts from mytable(i.id)) executors
from  incoming i
where i.reg_date between :DATE1 and :DATE2


Johnmen   (2008-04-02 13:46:00) [1]

Б..., ну что за козел поднимает мертвеца, не читая самой ветки?


__Ruslan   (2008-04-02 12:47:00) [2]

здесь обсуждалось:
http://sql.ru/forum/actualthread.aspx?tid=534265

решение завести переменную:

CRLF = '
';


Xmen   (2008-03-27 10:15:00) [3]


> Правильный_Вася   (26.03.08 17:31) [27]
> >  К автору ветки это никак не относится...ты почем знаешь,
>  где у него крутится сервер и какова дальнейшая судьба проекта?
> надо хоть на шаг вперед думатьи предполагать возможность
> дальнейшей доработки не обязательно тобой

Уменя кроми винды ничего нет и наверно не будет потамучто сопровождение никс систем очен дорого(ИМХО) да я тоже если в правду то близко низнаком с такими ОС


Johnmen   (2008-03-26 17:36:00) [4]


> ты почем знаешь, где у него крутится сервер и какова дальнейшая
> судьба проекта?

У меня мощный телепатор. Хоть и изношенный...


Правильный_Вася   (2008-03-26 17:31:00) [5]


>  К автору ветки это никак не относится...

ты почем знаешь, где у него крутится сервер и какова дальнейшая судьба проекта?
надо хоть на шаг вперед думать
и предполагать возможность дальнейшей доработки не обязательно тобой


Johnmen   (2008-03-26 17:12:00) [6]


> как так ни при чем?в никсах перевод строки одним кодом делается,
>  а не двумя как в винде

Да хоть тремя! К автору ветки это никак не относится...

> показанная мной UDF прекрасно работает и при этом наглядна в коде

А-а-а, если УДФ, тогда да, работает.
Но насчет удобства и наглядности можно поспорить. Но не буду. Ибо лично для меня хотя бы та же наглядность кода процедуры сколь-нибудь важна только в момент её написания и отладки. А эти действия "единовременны".


Правильный_Вася   (2008-03-26 17:05:00) [7]


>  намекаю на то, что здесь это не причем

как так ни при чем?
в никсах перевод строки одним кодом делается, а не двумя как в винде

>  "наглядно, но не работает" - к этому надо стремиться?

показанная мной UDF прекрасно работает и при этом наглядна в коде


Johnmen   (2008-03-26 17:01:00) [8]


> Правильный_Вася   (26.03.08 16:47) [23]
> зря остришь

Да не острю я, а намекаю на то, что здесь это не причем, и что всяких "если" можно напридумывать...

> > Напиши наглядно.
> уже писал выше

Т.е. "наглядно, но не работает" - к этому надо стремиться?
:))


Правильный_Вася   (2008-03-26 16:47:00) [9]


>  компиляция в условиях вакуума вообще не пойдёт.

зря остришь
код, возвращающий при одних входных данных разный результат, - верный путь к большим тумакам

> Напиши наглядно.

уже писал выше


Johnmen   (2008-03-26 16:42:00) [10]

можно, но не наглядно

Напиши наглядно. Никто не будет против, только "за".

> мало того, есть подозрение, что компиляция под виндой и
> никсами в итоге дас разный результат в переменную

Скажу больше, компиляция в условиях вакуума вообще не пойдёт.


Johnmen   (2008-03-26 16:40:00) [11]


> Reindeer Moss Eater ©   (26.03.08 16:22) [18]
> ё-маё. кто бы мог подумать :)

Да, вот такая фича... :)


Правильный_Вася   (2008-03-26 16:37:00) [12]

мало того, есть подозрение, что компиляция под виндой и никсами в итоге дас разный результат в переменную


Правильный_Вася   (2008-03-26 16:33:00) [13]


> В теле процедуры исх код должен быть таким (дословно!):

можно, но не наглядно


Reindeer Moss Eater   (2008-03-26 16:22:00) [14]

ё-маё. кто бы мог подумать :)


Johnmen   (2008-03-26 16:16:00) [15]


> Xmen   (26.03.08 15:02) 

В теле процедуры исх код должен быть таким (дословно!):
mytexts=mytexts||'
'||:per||'
'||:rez||'
'||:condat;


Reindeer Moss Eater   (2008-03-26 15:57:00) [16]

нету там встроенной. так что [14]


Правильный_Вася   (2008-03-26 15:57:00) [17]


> низнаю где искать и чего

Правильный_Вася   (26.03.08 15:41) [10]


Reindeer Moss Eater   (2008-03-26 15:56:00) [18]

... и обнаруживаешь, что ее там не предусмотрели.

тогда либо метаимволы и замена на клиенте или udf как уже сказали.


Xmen   (2008-03-26 15:56:00) [19]

лучше меня пинайте, ругайте но покажите пример.
я посмотрелбы доки но низнаю где искать и чего, вот моя проблема :(


Reindeer Moss Eater   (2008-03-26 15:50:00) [20]

Не знаешь как искать функцию?
Рассказываю:
открываешь доку и читаешь сверху вниз, слева направо.


Страницы:   1 2

Наверх

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