Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 State mashine in MS SQL Stored procedure  [new]
_Groxot_
Member

Откуда: Оттуда
Сообщений: 481
Добрый день знатоки!
Собственно вопрос как реализовать state mashine в хранимке?
Любой пример приветствуется. Заранее спасибо
1 окт 12, 14:56    [13249864]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
AnaceH
Member

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

Вот только зачем?
1 окт 12, 15:00    [13249899]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
_Groxot_
как реализовать state mashine в хранимке
А что такое "state mashine"?
1 окт 12, 15:00    [13249900]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
_Groxot_
Member

Откуда: Оттуда
Сообщений: 481
AnaceH

Да, нестандартный подход, пытаюсь сделать трехзвенку через хранимки....
1 окт 12, 15:03    [13249927]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Могу предположить что должна быть таблица состояний, таблица переходов и некий несложный код, который используя эти две таблицы и переменную текущего состояния был бы в состоянии вычислить переход в следующее состояние
1 окт 12, 15:04    [13249931]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
_Groxot_
Member

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

Ну это и так ясно, вот код хотелось бы посмотреть) На Delphi, например этот велосипед давно изобретен и незачем делать чужие ошибки при написании.... возможно тут та же история?
1 окт 12, 15:06    [13249954]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
_Groxot_,

select @NextState = NextState from StateTable where State = @CurrentState and Condition = @Condition?
1 окт 12, 15:08    [13249970]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
_Groxot_
Member

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

Спасибо за активность, код действительно примитивный и не его я искал)
Интересует кусок работающей машины, с обработкой всех ошибок перехода....
Я так понимаю готовых решений нет, буду писать сам)
Тут же как обычно: Что то написал, вроде работает, через неделю найдешь ошибку....
Я писал выше про велосипед.... но так понимаю тут все пока что на самокатах )
1 окт 12, 15:13    [13250029]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
видимо ни у кого пока что не возникало необходимости реализовывать автомат на т-скл
1 окт 12, 15:17    [13250058]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
ну автомат на т-скл навреное не вапрос, пишете состояние в таблицу и там по стеку проверяете его ...
только вот зачем
1 окт 12, 15:20    [13250092]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Maxx,

мы на скл решали системы уравнений, с 50-100 неизвестными.
просто было надо
1 окт 12, 15:21    [13250102]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
Maxx
Member [скрыт]

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

да я разве против по факту,я когда то и похожуу на ТС задачу решал... но только вот практического применения мало.
Сейчас бы наврено смотрел в сторону реализовывать такое через брокер,все таки очеред и все такое... легко вписываються в задачу
Опять же - если сильно надо - можно практически все сделать, но нахрена
1 окт 12, 15:25    [13250144]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Maxx
но нахрена
Я вообще не понимаю ни хрена.
Какой нафиг State mashine? Какая ещё 3х звенка?
Вот объясните для чего это всё? И как оно фунчиклирует?
1 окт 12, 15:46    [13250377]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
Maxx
Member [скрыт]

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

спроси у ТС зачем ему сие понадобалось ,я не знаю- честно
1 окт 12, 15:49    [13250402]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
А я у него и спрашиваю. Или тех кто понял.
1 окт 12, 15:51    [13250426]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
Glory
Member

Откуда:
Сообщений: 104760
Mnior
А я у него и спрашиваю. Или тех кто понял.

Это называется Конечный автомат

Сообщение было отредактировано: 1 окт 12, 15:58
1 окт 12, 15:57    [13250480]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Mnior
А я у него и спрашиваю. Или тех кто понял.

например - "схема прохождения документа по инстанциям/визированию"
1 окт 12, 16:16    [13250707]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
locky
например - "схема прохождения документа по инстанциям/визированию"

все равно решается через таблицу состояний\переходов
1 окт 12, 16:20    [13250755]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Мда, вопросы я задавать не умею.

Что такое автомат и трёх-звенка я понимаю. И что такое процедура тоже.

Я не нонимаю как они связаны и что ТС вообще нужно?
Или оно тоже задавать вопросы не умеет?
1 окт 12, 16:29    [13250848]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Mnior
Мда, вопросы я задавать не умею.

Что такое автомат и трёх-звенка я понимаю. И что такое процедура тоже.

Я не нонимаю как они связаны и что ТС вообще нужно?
Или оно тоже задавать вопросы не умеет?


Нужно типовое отлаженное решение для реализации произвольного КА, как я понимаю

Ищут же готовые запросы для, например, нахождения дырок?
Или там - для расчета MD5/проверки баркодов/инн/етк
1 окт 12, 16:45    [13251000]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
locky, вы издеваетесь.
Вы ещё добавили также непонятно к чему - "дырки", расчет бла-бла-бла.

Неужели Октябрь в Апреля переименовали?
1 окт 12, 16:52    [13251083]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Mnior
locky, вы издеваетесь.
Вы ещё добавили также непонятно к чему - "дырки", расчет бла-бла-бла.

Неужели Октябрь в Апреля переименовали?

Я всегда, когда ищу готовое решение - издеваюсь.
Человек ищет готовую реализацию common алгоритма
на моей памяти на скуле чаще всего ищут готовый запрос для нахождения дырок.
1 окт 12, 17:01    [13251153]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
_Groxot_
Member

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

Прошу прощения, заболел и не участвовал в обсуждении =(

Дело в том что есть программа, которая выполняет последовательность действий с обьектом, и вся эта информация хранится в базе.
Исторически сложилось что программа имеет 2х звенную структуру и логика размазанна между клиентом и сервером.
Хочется сосредоточить логику на сервере в хранимых процедурах. Вот и задался вопросом как сделать на сервере то, что обычно делается на клиенте. А именно стейт машину.
На C#, например, есть готовые решения стейт машин, и окинув её взглядом понимаеш, что вот тут бы ты не учел, а вот тут очень хорошая проверка на ошибки...
Искал подобное и на SQL.
Сейчас все выливается в 3-4 таблицы и 3 процедуры (в стандартном случае меньше, но дополнительные проверки требуют больше процедур). В общем решил убить побольше времени но сделать сам...
3 окт 12, 10:07    [13259701]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
_Groxot_
Member

Откуда: Оттуда
Сообщений: 481
Да, по поводу того как это работает:
Объект A может быть подвержен действиям N.
Но есть условие по которому, например, после N1 можно выполнить N2 и N3 но нельзя N4, а после N2 можно N3 и нельзя N1 и N4....
Вот задача стейт машины знать про то какое действие можно выполнить после Nх и какое нельзя...
Вроде как примитивно обьяснил, может и не точно но я вижу так...
3 окт 12, 10:18    [13259777]     Ответить | Цитировать Сообщить модератору
 Re: State mashine in MS SQL Stored procedure  [new]
machine gun
Guest
_Groxot_
Да, по поводу того как это работает:
Объект A может быть подвержен действиям N.
Но есть условие по которому, например, после N1 можно выполнить N2 и N3 но нельзя N4, а после N2 можно N3 и нельзя N1 и N4....
Вот задача стейт машины знать про то какое действие можно выполнить после Nх и какое нельзя...
Вроде как примитивно обьяснил, может и не точно но я вижу так...

create procedure MakeN
as
begin
  begin tran
  exec @r = MakeN1
  if @r = 2
  begin
   exec @r = MakeN2
   if @r = 3
     exec @r= MakeN3
  end
  else
   exec @r = MakeN4
  commit

  try/catch
end

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

для "гибкой штуки динамически определяющей _набор_ возможных действий (N)" обоснование может быть только одно - пользователь может руками менять наборы действий, возможные переходы и условия перехода.
3 окт 12, 10:27    [13259853]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить