Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.09.28;
Скачать: CL | DM;

Вниз

Хранимая процедура. Перевод строки   Найти похожие ветки 

 
Xmen   (2008-03-26 15:02) [0]

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

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


 
Reindeer Moss Eater ©   (2008-03-26 15:17) [1]

если не получится (почему кстати?) то метасимовл и его замена на CRLF на клиенте


 
Xmen   (2008-03-26 15:24) [2]

можно ваш вариант этого куска
mytexts=mytexts||"||"||:per||" "||:rez||" "||:condat;
интересует то что в черном.


 
Reindeer Moss Eater ©   (2008-03-26 15:29) [3]

В черном #13#10


 
Xmen   (2008-03-26 15:32) [4]

mytexts=mytexts||"#13#10"||:per||" "||:rez||" "||:condat; так не получился как текст пишет
mytexts=mytexts||#13#10||:per||" "||:rez||" "||:condat; так выдал ошибку
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 19, char 24.
#.


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


> после определенного слово остальное вводился в другу строку

строка - это текстовая переменная или запись набора данных?


 
Reindeer Moss Eater ©   (2008-03-26 15:33) [6]

Дядька походу юный юниксоид попавший на винду.


 
Reindeer Moss Eater ©   (2008-03-26 15:35) [7]

так не получился как текст пишет

Совсем в танке? Не надо так буквально воспринимать ответы.

Я ведь мог и CRLF всесто #13#10 написать.


 
Xmen   (2008-03-26 15:38) [8]

Ну это вопрос возник после моего вчерашнего вопроса. Если помните там тоже отвечали
http://delphimaster.net/view/3-1206330334/


 
Reindeer Moss Eater ©   (2008-03-26 15:39) [9]

Ищи функцию возвращающую символ по его коду.


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

мануал читать про UDF и ascii_char


 
Xmen   (2008-03-26 15:42) [11]


> Reindeer Moss Eater ©   (26.03.08 15:35) [7]
> так не получился как текст пишетСовсем в танке? Не надо
> так буквально воспринимать ответы.Я ведь мог и CRLF всесто
> #13#10 написать.



> Reindeer Moss Eater ©   (26.03.08 15:39) [9]
> Ищи функцию возвращающую символ по его коду.

Ну низнаю сейчас как это сделат :(
Наверно в танке.


 
Reindeer Moss Eater ©   (2008-03-26 15:50) [12]

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


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

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


 
Reindeer Moss Eater ©   (2008-03-26 15:56) [14]

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

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


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


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

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


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

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


 
Johnmen ©   (2008-03-26 16:16) [17]


> Xmen   (26.03.08 15:02) 

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


 
Reindeer Moss Eater ©   (2008-03-26 16:22) [18]

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


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


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

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


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

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


 
Johnmen ©   (2008-03-26 16:40) [21]


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

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


 
Johnmen ©   (2008-03-26 16:42) [22]

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

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

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

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


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


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

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

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

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


 
Johnmen ©   (2008-03-26 17:01) [24]


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

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

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

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


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


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

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

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

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


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


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

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

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

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


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


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

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


 
Johnmen ©   (2008-03-26 17:36) [28]


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

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


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


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

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


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

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

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

CRLF = "
";


 
Johnmen ©   (2008-04-02 13:46) [31]

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



Страницы: 1 вся ветка

Текущий архив: 2008.09.28;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.021 c
2-1219018734
Lamer666
2008-08-18 04:18
2008.09.28
Bз одного ADODataSet в Другой?


2-1218705471
kate158
2008-08-14 13:17
2008.09.28
открыть файл с помощью ShellExecute, путь к ктр лежит в реестре


15-1217001779
Сергей М.
2008-07-25 20:02
2008.09.28
Это я


2-1218181887
prodex
2008-08-08 11:51
2008.09.28
Закрытие сокета


1-1199283349
Zheksik
2008-01-02 17:15
2008.09.28
OpenDialog и расширение файлов