|
|
|
1 программа + два разных сервера БД (FireBird и MSSQL)
|
|||
|---|---|---|---|
|
#18+
Преамбула: Программка используется в компании с несколькими самостоятельными филиалами. Их базы - клоны по структуре без взаимосвязи данных, клинетская программа должна быть единой. Программа дорабатывается в процессе эксплуатации. Но в одном филиале требуется чтоб был сервер БД - MSSQL, по причине его уже успользования под другие задачи и сформированной инфраструктуры (железо, штат админов, регламенты и т.д.), а в другом - надо чтоб был FireBird да еще и Embeded, т.к. филиал маленький, комп один, работа локальная и админов нет Вопрос: как можно разрабатывать клиентское приложение чтобы клиент мог рабоать с разными серверами в зависимости от настроек программы. То что всю серверную часть прийдется дублировать - это понятно, но как хотябы клинета то одного иметь ? и вообще реальна ли такая затея ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 09:21 |
|
||
|
1 программа + два разных сервера БД (FireBird и MSSQL)
|
|||
|---|---|---|---|
|
#18+
затея вполне реальна основная идея заключается в том, чтобы разделить приложение на две части: зависящую от СУБД и независящую, а между этими частями устанавливается некий единый программный интерфейс и передаются данные. вобщем в поиск со словами "трехзвенная архитектура"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 09:27 |
|
||
|
1 программа + два разных сервера БД (FireBird и MSSQL)
|
|||
|---|---|---|---|
|
#18+
добавка: "трехзвенная архитектура" в данном случает относится не к системе в целом, а к одному приложению (+ СУБД)... т.е. вообще использование термина не совсем корректное, но идея та же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 09:31 |
|
||
|
1 программа + два разных сервера БД (FireBird и MSSQL)
|
|||
|---|---|---|---|
|
#18+
на счет трехзвенки направление ясно, но дело в том что вариант программы под FireBird уже написан и используется, использованы компоненты доступа FibPlus, а вот счас надо сделать еще и под MSSQL. в случае с трехзвенкой - это практически новое приложение делать, чего б нехотелось.. есть менее трудоемкие пути ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 09:32 |
|
||
|
1 программа + два разных сервера БД (FireBird и MSSQL)
|
|||
|---|---|---|---|
|
#18+
LelikBolekна счет трехзвенки направление ясно, но дело в том что вариант программы под FireBird уже написан и используется, использованы компоненты доступа FibPlus, а вот счас надо сделать еще и под MSSQL. в случае с трехзвенкой - это практически новое приложение делать, чего б нехотелось.. есть менее трудоемкие пути ? эх... всё таки неправильно я выразился :( трехзвенка подразумевает выделение сервера приложений со своей логикой, а здесь нужен просто дополнительный слой абстракции в работе приложения... на примере школы: на уровне интерфейса пользователь оперирует понятиями "Ученик", "Учитель", "Класс". соотвественно высший уровень убстракции тоже имеет эти же объекты (классы). Теперь нужно завести некий движок TEngine, который умеет делать что-то вроде "Добавить ученика", "Перевести ученика в другой класс" и т.д. А потом от этого движка унаследовать TFIBEngine и TMSSQLEngine с соотвествующими реализациями. Конечно, это довольно большая переделка приложения, но с нормальным качестве проще сделать сложно. Есть конечно вариант перейти на BDE ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 09:39 |
|
||
|
1 программа + два разных сервера БД (FireBird и MSSQL)
|
|||
|---|---|---|---|
|
#18+
а если так: в общем - это дублировать компоненты доступа, ADO и FibPlus, а всвязи с тем что на FibPlus уже написано, так просто доложить на все объекты компненты ADO, в процедуры инициализации форм или процедур прописать по какому пути в коде работать.. может и бред конечно, но мне кажется так проще добавить использование нового сервера с приложение. Добавлять третий думаю не потрбуется .. может конечно и с FireBird-ом работать через ADO, тк MSSQL будет первичной платформой, а FireBird останется для поддрежки уже имеющегося филиала ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 09:51 |
|
||
|
1 программа + два разных сервера БД (FireBird и MSSQL)
|
|||
|---|---|---|---|
|
#18+
LelikBolekа если так: в общем - это дублировать компоненты доступа, ADO и FibPlus, а всвязи с тем что на FibPlus уже написано, так просто доложить на все объекты компненты ADO, в процедуры инициализации форм или процедур прописать по какому пути в коде работать.. может и бред конечно, но мне кажется так проще добавить использование нового сервера с приложение. Добавлять третий думаю не потрбуется .. велик шанс, что получится сильно криво :) понятно же, что синтаксис языков разный, способы обращения к данным разные, набор компонент не совпадает (т.е. не совсем совпадает)... вобщем мое мнение - интерфейсная часть не должна подозревать о том с какой базой работает LelikBolek может конечно и с FireBird-ом работать через ADO, тк MSSQL будет первичной платформой, а FireBird останется для поддрежки уже имеющегося филиала можно то оно можно, а кто перепишет запросы? Может вообще проще поддерживать два приложения или уболтать этот одинокий филиал на установку MSDE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 10:01 |
|
||
|
1 программа + два разных сервера БД (FireBird и MSSQL)
|
|||
|---|---|---|---|
|
#18+
Одинокому филиалу лучше на FibPlus c Embded т.к. при необходмиости перенести прогу на другую машину или на ноут - ничего думать не надо, просто скопировал пупку и все.. а с MSDE так не прокатит. Запросы все равно мне переписывать.. Пока склоняюсь на перевод на доступ через ADO, например через IBProvider (http://www.ibprovider.com/rus/index.html), но пока не понял как быть с ХП, в обоих серверах они есть но возможности у них разные...Если при совпадении имен и параметров реализовывать их по разнному где то будут грабли... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 10:12 |
|
||
|
1 программа + два разных сервера БД (FireBird и MSSQL)
|
|||
|---|---|---|---|
|
#18+
LelikBolekОдинокому филиалу лучше на FibPlus c Embded т.к. при необходмиости перенести прогу на другую машину или на ноут - ничего думать не надо, просто скопировал пупку и все.. а с MSDE так не прокатит. Запросы все равно мне переписывать.. Пока склоняюсь на перевод на доступ через ADO, например через IBProvider (http://www.ibprovider.com/rus/index.html), но пока не понял как быть с ХП, в обоих серверах они есть но возможности у них разные...Если при совпадении имен и параметров реализовывать их по разнному где то будут грабли... удачи в нелёгком деле :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 10:22 |
|
||
|
1 программа + два разных сервера БД (FireBird и MSSQL)
|
|||
|---|---|---|---|
|
#18+
LelikBolekОдинокому филиалу лучше на FibPlus c Embded т.к. при необходмиости перенести прогу на другую машину или на ноут - ничего думать не надо, просто скопировал пупку и все.. а с MSDE так не прокатит. Запросы все равно мне переписывать.. Пока склоняюсь на перевод на доступ через ADO, например через IBProvider (http://www.ibprovider.com/rus/index.html), но пока не понял как быть с ХП, в обоих серверах они есть но возможности у них разные...Если при совпадении имен и параметров реализовывать их по разнному где то будут грабли... Все равно фактически разрабатывать два приложения. Если такой филиал действительно один (два, три), то стоит задаться вопросом, на сколько возрастет стоимость разработки приложения из-за него (них). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 12:17 |
|
||
|
1 программа + два разных сервера БД (FireBird и MSSQL)
|
|||
|---|---|---|---|
|
#18+
тут вопрос в удобстве именно проложения безо всякой установки, автономность... объемы базы позволяют перености на разные компы или ноуты. а в случае с MSSQL так вроде бы не выйдет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 12:20 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=134&tid=1545096]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 406ms |

| 0 / 0 |
