powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Триггера для разных СУБД
7 сообщений из 7, страница 1 из 1
Триггера для разных СУБД
    #35184493
eml78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть программа которая работает с СУБД.
Генерация структуры таблиц/индексов/ограничений и т.п. под каждую СУБД в принципе проблем не вызывает. Однако есть проблема с PL - процедурным языком (конкретно это текст триггеров и процедур). Существуют ли какие-либо решения позволяющие писать код один раз, а потом получать эквивалентно работающие триггера для различных СУБД.

Я понимаю, что СУБД обладают различными возможностями и в этом плане мне вполне достаточно некоторого минимума (вычисление простых выражений, выборки, курсоры и т.п) которые поддержаны в большинстве СУБД.

Кто-нибудь знает как можно решить данную проблему? Возможно есть какие-то case-средства?
...
Рейтинг: 0 / 0
Триггера для разных СУБД
    #35184541
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eml78Кто-нибудь знает как можно решить данную проблему? Возможно есть какие-то case-средства?Написать свой генератор триггеров.

Но успех этого предприятия - сильно сомнительный.
...
Рейтинг: 0 / 0
Триггера для разных СУБД
    #35184691
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eml78Кто-нибудь знает как можно решить данную проблему? Возможно есть какие-то case-средства?
Делаю так. В PowerDesigner-е одна физическая модель (а не для каждой СУБД). После Extract-а выполняю скрипт на perl-е, который отпарсит sql в том виде, который нужен конкретным серверам БД, и раскидает их по папкам.
...
Рейтинг: 0 / 0
Триггера для разных СУБД
    #35186647
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если триггеры решают некоторые типовые задачи системного уровня, типа каскадного удаления записей и т.п., то используя таблицы свойств и шаблоны не сложно создать генератор таких триггеров.

Нестандартные триггеры придётся писать вручную под каждую СУБД. Теоретически можно разработать некий язык и создать трансляторы с этого языка в языки целевых СУБД. Однако, такое решение имеет смысл только в случае тиражирования такого решения.
...
Рейтинг: 0 / 0
Триггера для разных СУБД
    #35188182
eml78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ВаскецовДелаю так. В PowerDesigner-е одна физическая модель (а не для каждой СУБД). После Extract-а выполняю скрипт на perl-е, который отпарсит sql в том виде, который нужен конкретным серверам БД, и раскидает их по папкам.
А каким образом скрипт на perl преобразует текст триггеров? И где взять такой скрипт?
...
Рейтинг: 0 / 0
Триггера для разных СУБД
    #35188269
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eml78 Сергей ВаскецовДелаю так. В PowerDesigner-е одна физическая модель (а не для каждой СУБД). После Extract-а выполняю скрипт на perl-е, который отпарсит sql в том виде, который нужен конкретным серверам БД, и раскидает их по папкам.
А каким образом скрипт на perl преобразует текст триггеров? И где взять такой скрипт?

Как я понял, преобразование текста триггеров не происходит, только разнесение по папкам. А дальше уже сама...
...
Рейтинг: 0 / 0
Триггера для разных СУБД
    #35189059
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tru55Как я понял, преобразование текста триггеров не происходит, только разнесение по папкам. А дальше уже сама...
Текст триггера/процедуры/.. (да любого SQL-я, хоть create table) парсится перловым парсером, в папки падают уже варианты, которые без дополнительных телодвижений исполняются на соответствующих серверах БД. В соответствии с установленным порядком внесение изменений в отпарсенные скрипты запрещено.

eml78А каким образом скрипт на perl преобразует текст триггеров? И где взять такой скрипт?
Скрипт писал я сам, делиться им не намерен. Для его написания необходимо хорошо знать особенности различных SQL-серверов и хотя бы немного знать perl. Впрочем, возможно Вам будет удобнее обрабатывать текст не на perl-е, это уже Ваше дело.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Триггера для разных СУБД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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