powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Помогите пожалуйста разобраться с хранимой процедурой
15 сообщений из 15, страница 1 из 1
Помогите пожалуйста разобраться с хранимой процедурой
    #34110908
r90000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Я пытаюсь сделать такую процедуру.Из временной таблицы в одну строчку получить данные и вывести ее в результирующем наборе.

declare
@R9 varchar(5000) ,
@R10 varchar(5000) ,
@R11 varchar(5000) ,
@R12 varchar(5000) ,
@R13 varchar(5000) ,
@R14 varchar(5000)

declare
@R90 varchar(5000)
..........--Здесь идет создание и заполнение данными временной таблицы

declare cr1 cursor for
select
#RECIPIENTTRANSACTIONOUT.TransactionDate, #RECIPIENTTRANSACTIONOUT.ShortName,
#RECIPIENTTRANSACTIONOUT.DebetAmount,#RECIPIENTTRANSACTIONOUT.CreditAmount,
#RECIPIENTTRANSACTIONOUT.DocNumber, #RECIPIENTTRANSACTIONOUT.SenderName
from #RECIPIENTTRANSACTIONOUT
where OrderOut="3"
order by
#RECIPIENTTRANSACTIONOUT.OrderOut,
#RECIPIENTTRANSACTIONOUT.TransactionDate,
#RECIPIENTTRANSACTIONOUT.RecAccTransaction
open cr1
fetch cr1 into @R9,@R10,@R11,@R12,@R13,@R14
while @@sqlstatus=0
begin
select @R90=@R90+
' Дата: '+' '+@R9+
' Вид операции: '+@R10
+' Списание: '+@R11
+' Поступление: '+@R12
+' № Платежного поручения: '+@R13
+' Наименование плательщика: '+@R14


fetch cr1 into @R9,@R10,@R11,@R12,@R13,@R14
end
close cr1
deallocate cursor cr1

--Вывод всей строки результата
select
' Дата входящего остатка: '+@R1+' Поступление входящего остатка: '+@R2
+' Поступление входящего инвестиционного дохода: '+@R3

+@R90
+' Дата оборота за период: '+@R4+' Списание оборота за период: '+@R5
+' Поступление оборота за период: '+@R6+' Доход за период: '+@R7+' Дата пенсионных накоплений: '+@R4+' Пенсионные накопления всего: '+@R8
+' Инвестиционный доход всего: '+@R7


END

Так вот мне почему то в переменной @R90 выводится одна строчка данных из запроса select
#RECIPIENTTRANSACTIONOUT.TransactionDate, #RECIPIENTTRANSACTIONOUT.ShortName,
#RECIPIENTTRANSACTIONOUT.DebetAmount,#RECIPIENTTRANSACTIONOUT.CreditAmount,
#RECIPIENTTRANSACTIONOUT.DocNumber, #RECIPIENTTRANSACTIONOUT.SenderName
from #RECIPIENTTRANSACTIONOUT
where OrderOut="3"
order by
#RECIPIENTTRANSACTIONOUT.OrderOut,
#RECIPIENTTRANSACTIONOUT.TransactionDate,
#RECIPIENTTRANSACTIONOUT.RecAccTransaction
хотя я проверил этот запрос формирует несколько строк данных. В чем здесь может быть дело?
И еще в результирующем наборе возвращаемым хранимой процедурой
обрезаются данные, т.е. в строке отсутствует ' Дата оборота за период: ' и далее по данным. В чем здесь может быть дело?
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с хранимой процедурой
    #34110923
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
@@sqlstatus - это хто?
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с хранимой процедурой
    #34110957
Фотография Alexander63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй

DECLARE @R90 varchar(8000)

это максимальная длина строки в SQL
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с хранимой процедурой
    #34110981
-=DiM@n=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если написать так?!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select @R90 = ISNULL(@R90, '')+
' Дата: '+' '+@R9+
' Вид операции: '+@R10
+' Списание: '+@R11
+' Поступление: '+@R12
+' № Платежного поручения: '+@R13
+' Наименование плательщика: '+@R14
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с хранимой процедурой
    #34110986
ASa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может стоит посмотреть в сторону FETCH NEXT?
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с хранимой процедурой
    #34111021
ASa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри еще здесь http://www.sql.ru/faq/faq_topic.aspx?fid=130
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с хранимой процедурой
    #34111348
r90000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все равно не то. Не получается?
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с хранимой процедурой
    #34111432
Sergej
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklin@@sqlstatus - это хто?

...и тишина...
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с хранимой процедурой
    #34111517
r90000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
@@sqlstatus=0
Это определяется момент когда при переборе select заканчиваются записи
кстати
если написать
select @R90 = @R90+'1', то 1 он нормально накапливает нужное количество раз
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с хранимой процедурой
    #34111531
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r90000@@sqlstatus=0
Это определяется момент когда при переборе select заканчиваются записи


Этот момент надо определять так:

Код: plaintext
while @@fetch_status =  0 
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с хранимой процедурой
    #34111566
-=DiM@n=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извините меня за нескромный вопрос. А у вас процедура со строкой @@sqlstatus=0 вообще откомпилировалась?!?!? Ведь не должна же!!!
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с хранимой процедурой
    #34111682
r90000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня правда не MSSQL Server, a Sybase там это работает, а вэтом форуме задал вопрос здесь больше людей заходят.
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с хранимой процедурой
    #34113848
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander63Попробуй

DECLARE @R90 varchar(8000)

это максимальная длина строки в SQL

Максимальная больше, 16 000 с лишним.
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с хранимой процедурой
    #34113857
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=DiM@n=-а если написать так?!
Код: plaintext
1.
select @R90 = ISNULL(@R90, '')+


Это не нужно, NULL при конкатенации и так выступает как пустая строка.
...
Рейтинг: 0 / 0
Помогите пожалуйста разобраться с хранимой процедурой
    #34113859
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю просто строка переполняется, и все. Только первые n строк влазят в результат. Вообще, это не очень хороший способ обработки, надо что-то другое придумывать.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Помогите пожалуйста разобраться с хранимой процедурой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]