powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Использование рекордсета одной процы в другой
10 сообщений из 10, страница 1 из 1
Использование рекордсета одной процы в другой
    #32072835
beriya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения за возможный оффтопик и изобретение велосипеда, но вот у нас на работе СУПЕРУМНЫЙ сис- и дб-админ не мог справиться с этой проблемкой, а я - скромный программист, справился. Спешу поделиться, может кому поможет, буду рад.
Итак, одна хранимая процедура возвращает результат выборки и надо этот результат использовать в другой хранимой процедуре.

CREATE proc p1
@c cursor varying output
as
declare tc cursor for select * from DAO_ActionTypes
set @c = tc
DEALLOCATE tc
open @c
(конец первой процедуры, возвращающей значение)

дальше :
declare @c1 cursor,
@i1 int,
@i2 int,
@s1 varchar(255)

exec p1 @c = @c1 output

fetch next from @c1 into @i1, @i2, @s1
While @@FETCH_STATUS = 0
begin
print 'ХЕ-ХЕ, Виталий : ' + @s1
fetch next from @c1 into @i1, @i2, @s1
end

Т.е. смысл в том, чтобы из первой процы возвращать курсов в качестве параметра.
Спасибо за внимание...
P.S.: Виталий, это тот сисадмин, который НЕ СМОГ 8-))
...
Рейтинг: 0 / 0
Использование рекордсета одной процы в другой
    #32072839
Trong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сомнительный подход ... очень ...
Т.к. скорее всего этот способ куда медленне, чем делать это через временные таблицы ... Если конечно не требуется именно перебор значений ...
...
Рейтинг: 0 / 0
Использование рекордсета одной процы в другой
    #32072840
beriya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Само-собой именно перебор и требовался, иначе нафиг вообще рекордсет нужен ?
...
Рейтинг: 0 / 0
Использование рекордсета одной процы в другой
    #32072842
Trong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему бы в p1 этого не сделать?
...
Рейтинг: 0 / 0
Использование рекордсета одной процы в другой
    #32072844
beriya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to Trong: Есть такое понятие - "структурное программирование", когда действия разбиваются на процедуры и функции. Если не сводить, конечно, работу с сервером до уровня "Select", а пытаться программировать хоть каую-то логику прямо на сервере, а не в АРМе.
...
Рейтинг: 0 / 0
Использование рекордсета одной процы в другой
    #32072846
Trong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну-ну ... Где-то я это уже слышал ...
Только структурное программирование это не тогда, когда делаешь себе проблемы, а тогда они сводятся к минимуму ...

Можно сделать обработку курсора в p1 и выдать результат через select ... и полученный рекордсет ловить там где надо.
...
Рейтинг: 0 / 0
Использование рекордсета одной процы в другой
    #32072851
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше про принципы структурного программирования в TSQL не сильно вспоминать. Тут основной показатель - это скорость и ресурсы, и если пытаться все по подпроцедурам разбивать, то кроме падения скорости ничего не получишь. Единственное по моему применение структурного программирования оправданное - это view и inline udf рисовать, действительно помогают жить.
...
Рейтинг: 0 / 0
Использование рекордсета одной процы в другой
    #32072852
beriya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще, проблемы, а равно и способы их решения, бывают разные. Способ с временной таблицей - первое, что приходит в голову.
Я увидел задачу и нашел альтернативное решение. На радостях поделился. Мог бы кто-нибудь похлопать по плечу и сказать "молодец, ващее".

Кстати, вопрос дилетанта:
MS SQL Server сам удаляет временные таблицы или их надо подчищать ? Если самому надо помнить об их удалении, то их использование мне не нравится.
...
Рейтинг: 0 / 0
Использование рекордсета одной процы в другой
    #32072857
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2beriya
А так не проще будет ?

CREATE proc p1
as
select * from DAO_ActionTypes
go

select * from openquery(mysqlserver, 'exec p1')
...
Рейтинг: 0 / 0
Использование рекордсета одной процы в другой
    #32072870
beriya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Glory
Возможно проще, если смогу разобраться, что подставить в качестве линкованного сервера.
Самом прилинковать сервер я не могу - говорит нет прав администратора 8-((
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Использование рекордсета одной процы в другой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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