![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Хранимая процедура. Перевод строки [D7, FireBird]
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]Не знаешь как искать функцию?
Рассказываю:
открываешь доку и читаешь сверху вниз, слева направо.