Форум: "Базы";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизОдно приложение - несколько СУБД Найти похожие ветки
← →
Mitrofan (2004-04-29 10:00) [0]Добрый день. Хотелось бы узнать вот какую вещь.
Можно ли сделать чтобы одно приложение работало с несколькими СУБД. К примеру есть приложение, которое работает с некой базой (не важно пока с какой), получает, изменяет, вставляет данные.
Хочется чтобы это приложение смогло работать и под другую СУБД.
К примеру можно ли сделать чтобы одно приложение могло работать со следующими СУБД: Firebird, MSSQL, Sybase. Как организовать такую вещь? Кто-ниюудь сталкивался с подобной проблемой?
Заранее спасибо.
← →
Johnmen © (2004-04-29 10:03) [1]Такое, как правило, реализуется в трёхзвенной архитектуре.
← →
bushmen © (2004-04-29 10:07) [2]Так как у разных СУБД может отличаться синтаксис языка, то проще взять за основу одгу СУБД и к ней прилинковать все остальные.
← →
Vlad © (2004-04-29 10:10) [3]
> Mitrofan (29.04.04 10:00)
Можно трехзвенную архитектуру использовать, а можно просто через интерфейсы реализовать, т.е. создаешь к примеру, библиотеку, делаешь в ней интерфейс с необходимым набором методов, и несколько объектов этот интерфейс реализующих.
← →
Nikolay M. © (2004-04-29 10:11) [4]
> К примеру можно ли сделать чтобы одно приложение могло работать
> со следующими СУБД: Firebird, MSSQL, Sybase
Легко. В двух последних случаях практический идентичный T-SQL. С FB сложнее, но если придерживаться стандарта, то можно выкрутиться, правда запросы будут далеко неоптимальными.
А зачем нужны такие выкрутасы?
← →
Mitrofan (2004-04-29 10:12) [5]Что касается синтаксиса, от СУБД требуется хранимые процедуры, генераторы и и ндексы.
← →
Nikolay M. © (2004-04-29 10:16) [6]
> Можно трехзвенную архитектуру использовать,
Можно много чего использовать. И что, Application-server не с базой будет работать и запросы будут не к серверу (серверам) ходить?
Вопрос не в том, кто будет делать запросы к базе (Апп-сервер или толстый клиент), а как сделать максимально легко переброс с одной СУБД на другую.
← →
Vlad © (2004-04-29 10:18) [7]
> Nikolay M. © (29.04.04 10:16) [6]
> как сделать максимально легко переброс с одной СУБД на другую.
И как же ? :-)
← →
Mitrofan (2004-04-29 10:19) [8]Nikolay M
Вы точно подметили,
как сделать максимально легко переброс с одной СУБД на другую
← →
Nikolay M. © (2004-04-29 10:20) [9]
> Mitrofan (29.04.04 10:12) [5]
ХП и индексы присутствуют во всех трех вышеперечисленных СУБД.
Генераторы - только в FB, но я не видел, чтобы работа с ними велась не из ХП или тригеров, следовательно, генераторы, скорее всего, можно вычеркнуть. А ХП все равно придется обрабатывать напильником под каждую СУБД.
Для разработки структуры БД могу порекомендовать PowerDesigner - визуально создаешь таблички и связи между ними (поддержка целостностями тригерами или внешними ключами), после генерируются скрипты на создание БД в нужных СУБД.
← →
Nikolay M. © (2004-04-29 10:22) [10]
> И как же ? :-)
Не использовать ХП, запросы писать по стандарту ANSI-SQL, с ненулевой вероятностью будет работать даже под MySQL 3.
← →
Sergey13 © (2004-04-29 10:33) [11]2Mitrofan (29.04.04 10:19) [8]
>как сделать максимально легко переброс с одной СУБД на другую
ИМХО, твое "максимально легко" надо переделать в "минимально трудозатратно". Легко только заразу можно подхватить. 8-)
Вообще путь несколько тупиковый, ИМХО. Универсальная прога под любую БД будет все равно хуже чем оригинальная под конкретную. И в чем выигрыш?
Ты много видел таких программ - "под любую БД"? Наверное только Database Desktop. 8-) Тебе такая прога нужна?
1С и то только под 2 вроде пашет. А уж у них ресурсов то поболее будет.
← →
Карелин Артем © (2004-04-29 14:13) [12]Народ, а как насчет работу через ADO и диалог построения строки подключения?
← →
sniknik © (2004-04-29 14:27) [13]Карелин Артем © (29.04.04 14:13) [12]
а толку то? синтаксис sql сильно отличается. формированием одной строки не обойдешся.
у меня есть программа работает с access, mssql, ib так под каждую пришлось свою "заточку" делать, запросы по разному, процедуры генерятся из программы под каждого свои (или обходится без них в случае с access). в общем довольно сложно это.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.043 c