powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / 2 (и более) диалекта в одном проекте. Как?
7 сообщений из 7, страница 1 из 1
2 (и более) диалекта в одном проекте. Как?
    #32970881
casmith
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть сложный проект.
Хочется вести его для нескольких БД, например, для MSSQL и Sybase, в одном средстве проектирования и в одной модели.
При генерации скриптов нужна возможность учитывать "особенности" каждой из БД, например: @@sql_status и @@fetch_status.
Кто-нибудь решал такую же задачу и как?
PD вроде бы не подходит, или мы не смогли понять, как правильно использовать define. :(

casmith
...
Рейтинг: 0 / 0
2 (и более) диалекта в одном проекте. Как?
    #32970997
sbobrikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Примерно такой вариант веду в ErWin 3.5.2.

Одна модель. Скрипты генерю для MS SQL и ORACLE.

С таблицами все нормально.
С отображением типов механизм лучше релизован в 4.х.,
но из-за его глюков и тормознутости на большом объеме
таблиц работаю на 3.5.2, где все реализовал на Domains.

Причем сейчас реализовал и генерацию и
сравнение модели с обоими серверами.

А в прочем можно написатьи свои макросы для генерации
скрипта в котором можно все обработать.

p.s.
А процедуры все равно под каждый сервер свои, так что их приходится вести
отдельно.
...
Рейтинг: 0 / 0
2 (и более) диалекта в одном проекте. Как?
    #32971221
casmith
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sbobrikovp.s.
А процедуры все равно под каждый сервер свои, так что их приходится вести
отдельно.Вот этого-то как раз и не хочется.
Думалось, что можно довольствоваться стандартом SQL, ну применяя кое-где какие-то дефайны...
...
Рейтинг: 0 / 0
2 (и более) диалекта в одном проекте. Как?
    #32971419
sbobrikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
casmithВот этого-то как раз и не хочется.
Думалось, что можно довольствоваться стандартом SQL, ну применяя кое-где какие-то дефайны...

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

p.s.
Жизнь показывает что большинство процедур, в итоге, оптимизируются под свой сервер, и в общем случае не идентичны.
...
Рейтинг: 0 / 0
2 (и более) диалекта в одном проекте. Как?
    #32971431
baza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все зависит от языка, на котором пишется приложение.
если это Java, то тогда при использовании имплементации JDO, можно писать общий объектный код, а СУБД менять настройками программы. (т.е. сохранение отвечает, например, VOA JDO). подробнее здесь .
если это .NET, то и для него есть абсолютно аналогичные возможности. подробнее здесь .
...
Рейтинг: 0 / 0
2 (и более) диалекта в одном проекте. Как?
    #32976231
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Был (хотя, почему был? и сейчас есть) проект с аналогичной задачей: было все в PD для ASE, надо было сделать для MSSQL. Поддерживать несколько моделей не стал, сделал все в одной, различия в типах меня не затронули, так как везде использовались домены, основная работа была по переводу TSQL. Изменение текста сделал автоматически парсером на перле. То есть, после формирования скрипта его в самом общем общем случае лить в БД нельзя, а надо прогнать через этот парсер. А он уже для нужной платформы сервера (а их в общем случае опять же не две) заменяет @@sql_status на @@fetch_status, isnull на nvl, удаляет lock datarows with identity_gap = 10, добавляет from dual и т.п.Естественно, фиксируется в CVS и аналогах и тем более отдается клиентам уже пропарсенная для требуемой платформы версия скрипта.
...
Рейтинг: 0 / 0
2 (и более) диалекта в одном проекте. Как?
    #32977697
casmith
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ВаскецовБыл (хотя, почему был? и сейчас есть) проект с аналогичной задачей: было все в PD для ASE, надо было сделать для MSSQL. Поддерживать несколько моделей не стал, сделал все в одной, различия в типах меня не затронули, так как везде использовались домены, основная работа была по переводу TSQL. Изменение текста сделал автоматически парсером на перле. То есть, после формирования скрипта его в самом общем общем случае лить в БД нельзя, а надо прогнать через этот парсер...Мы почти склонились к похожему варианту... препроцессор сишный вместо перла... но это все равно обработка скрипта после его изменения в PD, что не хотелось бы.
Механизм макросов PD можно сказать что не работает, или работает чрезвычайно плохо, неочевидно и неудобно, с т.з. любого программиста c и c++.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / 2 (и более) диалекта в одном проекте. Как?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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