Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
6-1081231259
Сергей Ю.
2004-04-06 10:00
2004.05.23
Сниффер


3-1083152021
КоммофОнСамый
2004-04-28 15:33
2004.05.23
помогите Найти пример к Employee.gdb


6-1081331309
NorthMan
2004-04-07 13:48
2004.05.23
Народ, в сети гуляет пример реализации PING а в Delphi


14-1083152485
Igorek
2004-04-28 15:41
2004.05.23
Предложение:


1-1084268514
akiro
2004-05-11 13:41
2004.05.23
Работа с событиями.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский