|
|
|
система с изменяющимися алгоритмами расчетов
|
|||
|---|---|---|---|
|
#18+
У соседей задан интересный Система с изменяющимися алгоритмами расчетов. Может из здешних обитателей имет что-либо сказать по теме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 12:26 |
|
||
|
система с изменяющимися алгоритмами расчетов
|
|||
|---|---|---|---|
|
#18+
Странно, что никого не заинтересовал такой вопрос sparrow "...Сопровождаю OLTP систему, в которой заказчик периодически основательно меняет алгоритмы расчета некоторых величин, причем алгоритмы сложны и используют данные из ~ полусотни таблиц. Для перерасчетов необходимо использовать методики, действовавшие в соответствующие периоды. Еще алгоритмы зависят от типа и состояния сущностей, для которых производится расчет. Вообще то это типичная для Росси, с её динамично изменяющимися законами и бизнесом, ситуация. То есть проблема должна быть у всех. " далее автор приводит свои варианты и вопрошает "Может кто-нибудь решил сходную проблему и прошел путь дальше или по-другому. Какие мнения? Расскажите." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 15:45 |
|
||
|
система с изменяющимися алгоритмами расчетов
|
|||
|---|---|---|---|
|
#18+
вообще в таких случаях стараюсь сохранять в таблицах результаты старых расчетов. но если стоит задача заново пересчитывать старые данные по старым же методикам, то выход видится в использовании хранимых процедур или пользовательских функций (для случая adp-проектов). для каждой методики пишутся свои процедуры или функции (или одна процедура которая рассчитывает все значения). создается таблица со столбцами типа: ДАТА_ПЕРИОД, ИМЯ_ПРОЦЕДУРЫ_РАСЧЕТА. далее в зависимости от выбранного периода, динамически создается команда SQL, запускающая нужную хранимую процедуру, и передающая ей необходимы параметры (оооочень желательно чтобы процедуры расчета для разных периодов работали с одним набором параметров). Эта процедура вычисляет результаты и либо заносит их сразу в результирующие таблицы либо возвращает в output'е Во всяком случае я такой способ использовал, вроде никто не жалуется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 16:03 |
|
||
|
система с изменяющимися алгоритмами расчетов
|
|||
|---|---|---|---|
|
#18+
Не стану встревать к соседям, но не понимаю какие проблемы при использовании SQL+ADP??? Есть процедура хранимая расчета чего-либо Вариантов могу предложить два: 1. В тексте самой процедуры при любом изменении методики алгоритма за определенный период стоит свой IF, по мере добавления методик добавляются IF'ы 2. В тексте процедуры в зависимости от периода стоит вызов соответствующей процедуры со своим алгоритом (можно даже сделать зависимость имени процедуры от периода). По мере добавления методик добавляются новые процедуры (при наличии зависимости от периода без изменения основной). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 16:22 |
|
||
|
система с изменяющимися алгоритмами расчетов
|
|||
|---|---|---|---|
|
#18+
Лучше я спрошу то, что непосредственно меня интересует. Есть форма, основанная на рекордсете с полями Поле 1, Поле 2, поле 3, ...(набор и имена полей фиксированны). В определенном месте осуществляется действие "выбор алгоритма" и в зависимости от того, какой алгоритм стоит по-умолчанию на момент открытия формы, рекордсет считается по определенному правилу. Где лучше хранить эти алгоритмы? У меня в голове следующий вариант: В некой служебной таблице хранится список алгоритмов и строки Sql, их релизующие: Код: plaintext 1. При запуске формы Процедура ищет определенную по-умолчанию для данной формы строку SQL и на основе ее формирует рекордсет. Но что-то это мне не очень нравится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 16:28 |
|
||
|
система с изменяющимися алгоритмами расчетов
|
|||
|---|---|---|---|
|
#18+
нравится...не нравится.... нормальный вариант, у меня такое используется в программе составления бюджета предприятия для реализации различных формул и выборки данных из таблиц и 1С. конечно динамически созданные запросы на сиквеле (о, какие я слова знаю :) ) работают медленнее чем views или какие-нить stored procedures но ведь работают же! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 16:35 |
|
||
|
система с изменяющимися алгоритмами расчетов
|
|||
|---|---|---|---|
|
#18+
Вариант нехороший, имхо. Если есть возможность нужно избегать использования динамических запросов, или по крайней мере жестко их форматировать и перед использованием разбирать. Отвечу почему: Если у меня есть доступ к таблице, я могу вместо запроса select * from ... поставить delete from .... что после этого будет думаю объяснять не нужно. Как сделать для MDB-базы я себе такую задачу не ставил (и если честно не очень хочется). Как сделать для сиквела я уже предлагал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 16:51 |
|
||
|
система с изменяющимися алгоритмами расчетов
|
|||
|---|---|---|---|
|
#18+
incold, Мне надо для MDB ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 16:57 |
|
||
|
система с изменяющимися алгоритмами расчетов
|
|||
|---|---|---|---|
|
#18+
Для MDB...а планируется ли в перспективе переход на клиент-сервер. Как вариант: Хранить алгоритмы в файле с таблицами и линковать не только таблицы, но и сам файл (либо сделать библиотечный файл, куда вынести стандартные для данного приложения функции, в т.ч. меняющиеся алгоритмы). Преимущества: менять алгоритм нужно в одном файле, который лежит рядом (вместе) с таблицами и не требуется распространять его по клиентским компьютерам. Недостатки: - если несколько пользователей запускают файлы которые имеют ссылку на один общий файл загрузка значительно замедляется (работа нет) - потребность отключать всех пользователей при изменении алгоритма, т.е. нет "горячего" добавления/изменения алгоритмов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 17:11 |
|
||
|
система с изменяющимися алгоритмами расчетов
|
|||
|---|---|---|---|
|
#18+
incold, Не совсем понял, но подумаю. Что значит, к примеру "лнковать файл". Мне известно понятие "связанная таблица Access", а что такое прилинкованный файл - мне неизвестно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 19:16 |
|
||
|
система с изменяющимися алгоритмами расчетов
|
|||
|---|---|---|---|
|
#18+
А что, Access может работать с модулями, не находящимися в одном файле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 19:18 |
|
||
|
система с изменяющимися алгоритмами расчетов
|
|||
|---|---|---|---|
|
#18+
А что, Access может работать с модулями, не находящимися в одном файле? Может, через References. Или можно использовать недокументированный LoadFromText. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 23:57 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1786&tid=1680864]: |
0ms |
get settings: |
6ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 338ms |

| 0 / 0 |
