Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

Одно приложение - несколько СУБД   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.089 c
1-1083745547
KPP
2004-05-05 12:25
2004.05.23
ZLib - пример использования


1-1083905152
russko
2004-05-07 08:45
2004.05.23
ДЛя тех, кто пользовался XLReport


14-1083772408
Ig
2004-05-05 19:53
2004.05.23
Это, что?


4-1081258506
Flying home
2004-04-06 17:35
2004.05.23
Написание DLL


11-1072519076
Boguslaw
2003-12-27 12:57
2004.05.23
Out of synchronization in MCK