|
|
|
Триггера для разных СУБД
|
|||
|---|---|---|---|
|
#18+
Есть программа которая работает с СУБД. Генерация структуры таблиц/индексов/ограничений и т.п. под каждую СУБД в принципе проблем не вызывает. Однако есть проблема с PL - процедурным языком (конкретно это текст триггеров и процедур). Существуют ли какие-либо решения позволяющие писать код один раз, а потом получать эквивалентно работающие триггера для различных СУБД. Я понимаю, что СУБД обладают различными возможностями и в этом плане мне вполне достаточно некоторого минимума (вычисление простых выражений, выборки, курсоры и т.п) которые поддержаны в большинстве СУБД. Кто-нибудь знает как можно решить данную проблему? Возможно есть какие-то case-средства? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2008, 11:38 |
|
||
|
Триггера для разных СУБД
|
|||
|---|---|---|---|
|
#18+
eml78Кто-нибудь знает как можно решить данную проблему? Возможно есть какие-то case-средства?Написать свой генератор триггеров. Но успех этого предприятия - сильно сомнительный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2008, 11:55 |
|
||
|
Триггера для разных СУБД
|
|||
|---|---|---|---|
|
#18+
eml78Кто-нибудь знает как можно решить данную проблему? Возможно есть какие-то case-средства? Делаю так. В PowerDesigner-е одна физическая модель (а не для каждой СУБД). После Extract-а выполняю скрипт на perl-е, который отпарсит sql в том виде, который нужен конкретным серверам БД, и раскидает их по папкам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2008, 12:29 |
|
||
|
Триггера для разных СУБД
|
|||
|---|---|---|---|
|
#18+
Если триггеры решают некоторые типовые задачи системного уровня, типа каскадного удаления записей и т.п., то используя таблицы свойств и шаблоны не сложно создать генератор таких триггеров. Нестандартные триггеры придётся писать вручную под каждую СУБД. Теоретически можно разработать некий язык и создать трансляторы с этого языка в языки целевых СУБД. Однако, такое решение имеет смысл только в случае тиражирования такого решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2008, 23:22 |
|
||
|
Триггера для разных СУБД
|
|||
|---|---|---|---|
|
#18+
Сергей ВаскецовДелаю так. В PowerDesigner-е одна физическая модель (а не для каждой СУБД). После Extract-а выполняю скрипт на perl-е, который отпарсит sql в том виде, который нужен конкретным серверам БД, и раскидает их по папкам. А каким образом скрипт на perl преобразует текст триггеров? И где взять такой скрипт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2008, 14:39 |
|
||
|
Триггера для разных СУБД
|
|||
|---|---|---|---|
|
#18+
eml78 Сергей ВаскецовДелаю так. В PowerDesigner-е одна физическая модель (а не для каждой СУБД). После Extract-а выполняю скрипт на perl-е, который отпарсит sql в том виде, который нужен конкретным серверам БД, и раскидает их по папкам. А каким образом скрипт на perl преобразует текст триггеров? И где взять такой скрипт? Как я понял, преобразование текста триггеров не происходит, только разнесение по папкам. А дальше уже сама... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2008, 14:55 |
|
||
|
Триггера для разных СУБД
|
|||
|---|---|---|---|
|
#18+
tru55Как я понял, преобразование текста триггеров не происходит, только разнесение по папкам. А дальше уже сама... Текст триггера/процедуры/.. (да любого SQL-я, хоть create table) парсится перловым парсером, в папки падают уже варианты, которые без дополнительных телодвижений исполняются на соответствующих серверах БД. В соответствии с установленным порядком внесение изменений в отпарсенные скрипты запрещено. eml78А каким образом скрипт на perl преобразует текст триггеров? И где взять такой скрипт? Скрипт писал я сам, делиться им не намерен. Для его написания необходимо хорошо знать особенности различных SQL-серверов и хотя бы немного знать perl. Впрочем, возможно Вам будет удобнее обрабатывать текст не на perl-е, это уже Ваше дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2008, 17:40 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35184541&tid=1543987]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
216ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 559ms |

| 0 / 0 |
