Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Изменение наборов параметров у ХП  [new]
omarushchak
Member

Откуда:
Сообщений: 16
Возможно ли как-то создать процедуру которая до определенной даты имеет один набор входящих и исходящих параметров, а в конкретную дату и после нее те же наборы параметров, но за исключением некоторых.
22 июл 19, 14:46    [21931758]     Ответить | Цитировать Сообщить модератору
 Re: Изменение наборов параметров у ХП  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36887
Написать код так, чтобы до опреденной даты он реализовывал одну логику, посе - другую. Например, игнорировал некоторые параметры.
22 июл 19, 14:48    [21931764]     Ответить | Цитировать Сообщить модератору
 Re: Изменение наборов параметров у ХП  [new]
omarushchak
Member

Откуда:
Сообщений: 16
Гавриленко Сергей Алексеевич
Написать код так, чтобы до опреденной даты он реализовывал одну логику, посе - другую. Например, игнорировал некоторые параметры.



Да но если в прикладном приложении вызывается с двумя "лишними" параметрами, то может быть ошибка. Как-то можно сделать необязательные параметры?
То есть такого понятия как полиморфизм пока еще не придумали в СУБД.
Пишем две сигнатуры процедур и в зависимости от того что "зовется", то автоматически находим нужную и исполняем.
22 июл 19, 15:20    [21931794]     Ответить | Цитировать Сообщить модератору
 Re: Изменение наборов параметров у ХП  [new]
msLex
Member

Откуда:
Сообщений: 7979
omarushchak
Как-то можно сделать необязательные параметры?

Задать им дефолтные значения
22 июл 19, 15:24    [21931801]     Ответить | Цитировать Сообщить модератору
 Re: Изменение наборов параметров у ХП  [new]
omarushchak
Member

Откуда:
Сообщений: 16
msLex,

А при возврате? Прикладное приложение будет ждать что-то при возврате. А этого что-то не будет или оно будет равно NULL.
22 июл 19, 15:43    [21931819]     Ответить | Цитировать Сообщить модератору
 Re: Изменение наборов параметров у ХП  [new]
Konst_One
Member

Откуда:
Сообщений: 11517
конкретику добавьте, а то не ясно что вам надо и что у вас за "прикладное приложение"
22 июл 19, 15:45    [21931821]     Ответить | Цитировать Сообщить модератору
 Re: Изменение наборов параметров у ХП  [new]
omarushchak
Member

Откуда:
Сообщений: 16
Konst_One,

Предположим у нас вот такой есть сценарий:

Схема базы данных (процедуры, таблицы, триггеры, функции) развернута в производственной среде в воскресенье (причем было удалено два входных параметра и два выходных параметра у ХП). Прикладное приложение развернуто (изменено) через 2 дня (вторник).
Как нужно реализовать ХП чтобы как-то прожить понедельник? Так как прикладное ПО будет "звать" по старой сигнатуре и будет обрабатывать набор выходов также. Все будет синхронизировано лишь во вторник.
22 июл 19, 15:54    [21931828]     Ответить | Цитировать Сообщить модератору
 Re: Изменение наборов параметров у ХП  [new]
Konst_One
Member

Откуда:
Сообщений: 11517
что за приложение и что за старая сигнатура, конкретику дайте
если все параметры ХП необязательные (со значениями по умолчанию), то будет ли ваше приложение работать?
22 июл 19, 15:56    [21931832]     Ответить | Цитировать Сообщить модератору
 Re: Изменение наборов параметров у ХП  [new]
Konst_One
Member

Откуда:
Сообщений: 11517
на крайний случай сделайте синоним на старую хп, а новую хп переименуйте
22 июл 19, 16:03    [21931838]     Ответить | Цитировать Сообщить модератору
 Re: Изменение наборов параметров у ХП  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31326
omarushchak
Прикладное приложение будет ждать что-то при возврате. А этого что-то не будет или оно будет равно NULL
Так вы придумайте правильную логику работы вашей системы, то есть "что вы хотите сделать", а потом уже задавайте вопросы в форуме по сиквелу, о том, "как это реализовать".
omarushchak
Схема базы данных (процедуры, таблицы, триггеры, функции) развернута в производственной среде в воскресенье (причем было удалено два входных параметра и два выходных параметра у ХП). Прикладное приложение развернуто (изменено) через 2 дня (вторник).
Как нужно реализовать ХП чтобы как-то прожить понедельник? Так как прикладное ПО будет "звать" по старой сигнатуре и будет обрабатывать набор выходов также. Все будет синхронизировано лишь во вторник.
Существует только 2 варианта изменений системы:

1) все компоненты системы меняются одномоментно, с остановкой систьемы во время специально выделенного "окна для обновления".

2) компоненты системы меняются независимо, при этом разработчиками должна закладываться возможность работы компонента новой версии с компонентами как старых, так и новых версий. (конечно, тут уже есть подварианты)

Например, это можно сделать, если новая версия процедуры будет содержать новые параметры, со значениями по умолчанию, и дополнительные поля в рекордсете.
Или как вариант (если изменения совсем большие), в серверной части будет сделана процедура с новым именем, а старые процедуры будут продолжать корректно работать
22 июл 19, 16:08    [21931847]     Ответить | Цитировать Сообщить модератору
 Re: Изменение наборов параметров у ХП  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7641
omarushchak,

наилучшим вариантом будет создать новую процедуру и собрать обновленного же клиента для использования новой процедуры.
22 июл 19, 16:16    [21931856]     Ответить | Цитировать Сообщить модератору
 Re: Изменение наборов параметров у ХП  [new]
omarushchak
Member

Откуда:
Сообщений: 16
Владислав Колосов
omarushchak,

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


Это бесспорно. Но пока вариант Алексея с дефолтными значениями и допколонками оптимальный -так как это разовая задача -просто как-то "прожить" понедельник.
22 июл 19, 16:49    [21931909]     Ответить | Цитировать Сообщить модератору
 Re: Изменение наборов параметров у ХП  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7641
omarushchak,

рекомендую изучить книгу
Эмблер, Скотт В. - Рефакторинг баз данных: эволюционное проектирование

Хотя она и рассчитана на Oracle и перевод мог гы быть более точным, но книга содержит много полезных сведений о практиках внедрения кода на предприятиях.
23 июл 19, 11:07    [21932436]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить