powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как определить наличие двух SELECT в процедурах БД?
6 сообщений из 31, страница 2 из 2
Как определить наличие двух SELECT в процедурах БД?
    #40012106
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- вытекающей из этого сложностью определения количества и состава возвращаемых датасетов, без доступа к коду процедурыЕсли нет доступа к коду, то должен быть доступ к документации.
Многодатасетность - зло. Как и переменое число полей.
проблемой вызова подобной процедуры в курсореУточните, в чем проблема ?
...
Рейтинг: 0 / 0
Как определить наличие двух SELECT в процедурах БД?
    #40012125
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов,

Начнем с простого: в чем преимущества "канонического" подхода, если
1. Для получения результирующего набора необходимо использовать n-ое количество временных таблиц.
2. Для получения результирующего набора необходима смена контекста выполнения.
3. Необходима оптимизация (рефакторинг) запроса без прерывания работы приложения.
...
Рейтинг: 0 / 0
Как определить наличие двух SELECT в процедурах БД?
    #40012149
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сложно сказать, что хорошо, а что плохо. Если не злоупотреблять при разработке крупных проектов, то, расширение возможностей процедур может быть оправданным, но не необходимым в большинстве случаев.

В качестве отступления: бывают случаи, когда исправление бага приводит в неисправность все приложение из-за того, что последующие разработки опирались на использование этого бага. Так и с использованием процедур, возвращающих наборы данных.

Наилучшим вариантом для самоконтроля кода было бы использование EXECUTE ... WITH RESULT SETS (). Такая конструкция позволяет использовать процедуры в SSIS источниках данных, например. Но на практике такое выражение используют редко.
...
Рейтинг: 0 / 0
Как определить наличие двух SELECT в процедурах БД?
    #40012154
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такая конструкция позволяет использовать процедуры в SSIS источниках данных, напримерСталкивался с такой "проблемой" :

QlikView не хотел зачитывать ХП с датасетом. Зачитывал пусто.
Оказалось, надо было просто выставить у ХП SET NOCOUNT ON. И все заработало. :)
...
Рейтинг: 0 / 0
Как определить наличие двух SELECT в процедурах БД?
    #40012191
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
fkthat,

назначение процедуры - выполнять некоторые действия над данными, с параметрами или без. процедуры может возвращать значения в выходных параметрах. Клиентский запрос получения данных обрабатывается прямым запросом, представлением данных или функцией. Функции, будучи программным кодом, как и процедуры, не могут выполнять операций изменения данных, но могут их возвращать. Вроде бы это постулаты отцов-основателей. По крайней мере, я так запомнил.

Да, вообще, мысль хорошая. Получается своего рода принцип CQS для БД.
...
Рейтинг: 0 / 0
Как определить наличие двух SELECT в процедурах БД?
    #40012390
Фотография SIMPLicity_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argo
Такая конструкция позволяет использовать процедуры в SSIS источниках данных, например
Сталкивался с такой "проблемой" :

QlikView не хотел зачитывать ХП с датасетом. Зачитывал пусто.
Оказалось, надо было просто выставить у ХП SET NOCOUNT ON. И все заработало. :)

Ну да, вычитывался "как-бы-датасет" с содержимым типа "24 rows affected"
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как определить наличие двух SELECT в процедурах БД?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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