Форум: "Базы";
Текущий архив: 2006.01.29;
Скачать: [xml.tar.bz2];
ВнизОрганизация сетевой базы данных Найти похожие ветки
← →
Clone_Of_Toxic (2005-11-23 08:35) [0]Здравствуйте!
Суть проблемы такова:
есть простенькая БД (одна таблица в файле *.DB) и корявенькая программа для управления таковой (добавить, удалить, найти). Возникла необходимость написать более мощную программу для работы с этой базой по сети. Т.е. несколько человек на разных компах сидят и работают с одной и той же базой данных: один добавляет, другой ищет, третий еще чего-нибудь с ней делает.
Поразмыслив над этой задачей, я пришел к выводу, что реализовать это нужно примерно так: на центральном компьютере, где хранится БД (назовем его Главным), находится маленькая невидимая программка-сервер, а на остальных компьютерах находятся программы-клиенты, которые обращаются с запросами к серверу, а тот совершает необходимые действия (выдает нужные записи, принимает от клиента отредактированные записи и т.д.).
Вопрос: каким образом и с помощью какой технологии это можно реализовать? И еще: где можно найти исчерпывающую информация на русском языке по данной теме?
Спасибо.
← →
Sergey13 © (2005-11-23 09:04) [1]2Clone_Of_Toxic (23.11.05 08:35)
Мыслишь ты правильно, только выражаешься несколько заумно. 8-)
В качестве программы-сервера надо взять серверную БД (рекомендую FireBird) и написать клиента.
← →
msguns © (2005-11-23 09:09) [2]>находится маленькая невидимая программка-сервер
ЦРУ ?
← →
Clone_Of_Toxic (2005-11-23 09:57) [3]2Sergey13
>В качестве программы-сервера надо взять серверную БД (рекомендую FireBird) и >написать клиента.
FireBird не подходит - клиент, равно как и сервер, должен быть написан мною.
Вопрос в другом - на какой технологии основывать проект? Та старая оболочка была основана на BDE. А на чем создаются сетевые базы данных в делфи?
2msguns
> ЦРУ ?
Нет, просто чтобы не путалась под ногами и не мозолила глаза. Висит себе в памяти и с клиентами общается.
← →
Anatoly Podgoretsky © (2005-11-23 09:59) [4]Clone_Of_Toxic (23.11.05 09:57) [3]
Можно на любой технологии, лучше на той который ты как то владеешь.
← →
Sergey13 © (2005-11-23 10:00) [5]2[3] Clone_Of_Toxic (23.11.05 09:57)
А Парадокс и БДЕ ты тоже сам писал?
← →
msguns © (2005-11-23 10:06) [6]В качестве савсэм маааленькой програмки, которую ну совсэм не видно, советую любимый 13-м Сергеем Уракл.
← →
msguns © (2005-11-23 10:10) [7]>Clone_Of_Toxic (23.11.05 09:57) [3]
>FireBird не подходит - клиент, равно как и сервер, должен быть написан мною.
Кстати,для полной крутизны и тайности надо бы окромя сервера написать еще и свою ОС. Да и процессор тоже некисло свой бы разработать. Вместе со всей остальной "требухой" ;)
← →
dioman © (2005-11-23 10:14) [8]Да если фаерберд не подходит, потому что не написан Clone_Of_Toxic.. то
оракл точно подойдет! :)
А че собна нада то?
← →
Clone_Of_Toxic (2005-11-23 10:20) [9]2Sergey13
>.А Парадокс и БДЕ ты тоже сам писал?
Нет, не я :) Но смысл таков: используя только D6 и иже с ним написать и клиента, и сервера.
2Anatoly Podgoretsky
>Можно на любой технологии, лучше на той который ты как то владеешь.
Я владею только BDE. С сетевыми ни разу не сталкивался.
← →
dioman © (2005-11-23 10:20) [10]Сервер - создаешь программу сервис. Слушаешь порт какой-нибудь, получаешь пакеты в виде запросов.. ложишь их в очередь, обрабатываешь по очереди. И передаешь любимому БДЕ... получаешь ответ в виде таблицы... отправляешь их клиенту... клиент получает и показывает! (только как передавать нужно подумать... на ум лезет сериализация готового класса который представляет таблицу (как он там называется).. либо собственная структура....
Никакой параллельной обработки, блокировки, многопоточности... класный сервак.
Я так понял нужно для учебных целей (раз самому нужно писать)...
← →
Sergey13 © (2005-11-23 10:30) [11]2 [9] Clone_Of_Toxic (23.11.05 10:20)
Таки я не понял - тебе надо шашечки или ехать?
Т.е. тебе надо написать работающую сетевую СУБД или поупражняться с Д6?
← →
Desdechado © (2005-11-23 11:02) [12]может, тебе 3-звенка нужна, а?
под описание подходит
бери Midas, например
← →
Slym © (2005-11-23 11:33) [13]Если сильно свое надо:
1. Написать сервер.
1.1. Разрабатывай протокол обмена клиент/сервера
1.2. Написать парсер протокола
2. Написать клиента.
2.1. Написать прослойку для DBAware компонент
в MIDAS -
1. scktsrvr.exe
1.1. XML
1.2. midas.dll
2. TSocketConnection
2.1. TClientDataSet
← →
Clone_Of_Toxic (2005-11-23 11:53) [14]Вот! Что мне и требовалось!
Спасибо Slym и Desdechado :)
Дальше уже попробую сам разобраться.
← →
Виталий Панасенко (2005-11-23 17:51) [15]
> Clone_Of_Toxic (23.11.05 11:53) [14]
> Вот! Что мне и требовалось!
> Спасибо Slym и Desdechado :)
> Дальше уже попробую сам разобраться.
Помоему, это глупости ты себе придумываешь !.. Чем тебе Парадокс не нравится ?! В сети работает очень даже ничего(хотя некоторые его поносят :-))) Все напишешь САМ. В принципе, пишешь прогу, А ОНА УЖЕ ВСЕ РАВНО СЕТЕВАЯ.. Если ты, конечно, ничего не извратил.. Нужно всего лишь БДЕ правильно настроить (указать правильно NetDir Для драйвера Paradox и не забыть в проге укзать Private Dir)
← →
AlexWlad © (2005-11-23 21:22) [16]
> Виталий Панасенко (23.11.05 17:51) [15]
>
> Помоему, это глупости ты себе придумываешь !.. Чем тебе
> Парадокс не нравится ?! В сети работает очень даже ничего
Ну-ну...
Нужно всего лишь БДЕ правильно настроить
> (указать правильно NetDir Для драйвера Paradox и не забыть
> в проге укзать Private Dir)
И УПС-ы на ВСЕ машины. И чтоб под рукой был "бубен программиста".
Автор! Не занимайся ерундой! Ставь FireBird или MSDE, используй IBX или ADO - и будет тебе щастье.
← →
ASDF234 (2005-11-24 00:30) [17]ну базы под FireBird, yafil и interbase при вырубании питания летят периодически до сих пор :) Так что без ИБП никуда!
Если конечно у тебя не 2 insert/updata в час :)
← →
mr.il © (2005-11-24 06:08) [18]
> Я владею только BDE. С сетевыми ни разу не сталкивался.
Может все дело в этом. Раньше мне тоже было страшно при упоминаниии о необходимости перехода на клиент сервер. Сейчас я счастлив, что смог это сделать.
← →
Виталий Панасенко (2005-11-24 09:20) [19]
> AlexWlad © (23.11.05 21:22) [16]
>
> > Виталий Панасенко (23.11.05 17:51) [15]
> >
> > Помоему, это глупости ты себе придумываешь !.. Чем тебе
>
> > Парадокс не нравится ?! В сети работает очень даже ничего
>
>
> Ну-ну...
С дуру можно и х.. поломать.. Не смотря на то, что это гидравлика ..:-)))
← →
alex_*** © (2005-11-24 10:19) [20]Пользуясь случаем хочу выяснить один момент: в парадоксе решается проблема блокировок, когда клиент заблокировал таблицу и слетел? После этого блокировку я вручную убивал. Давно это было, но помню мучался с этим. Может я чего-то не знал тогда?
← →
Sergey13 © (2005-11-24 10:28) [21]Микроскопом можно таки забивать гвозди. Однозначно можно. Доказано.
Вопрос - зачем? Но это уже никого не интересующие детали.
8-)
← →
Виталий Панасенко (2005-11-24 10:40) [22]
> alex_*** © (24.11.05 10:19) [20]
> Пользуясь случаем хочу выяснить один момент: в парадоксе
> решается проблема блокировок, когда клиент заблокировал
> таблицу и слетел? После этого блокировку я вручную убивал.
> Давно это было, но помню мучался с этим. Может я чего-то
> не знал тогда?
Работает склад с 2001 года.. Бывают ИНОГДА приколы.. А где их не бывает ? Не, я согласен, Жар-Птица приятней.. Сам на ней уже "сижу" :-)).. Но зачем человеку "баки забивать" ? Ведь, повторюсь, если не изголятся, программы УЖЕ СЕТЕВЫЕ... А блокировка.. Честно, ни разу не было такой проблемы.. Т.е. что-бы клиент падал и потом были проблемы...А решение.. думаю, удалить *.LCK файло достаточно было...
← →
alex_*** © (2005-11-24 10:51) [23]ну да. так и делал. Только ребутнуться надо было сначала, поскольку винда считала что файл используется. А это, сами понимаете, не есть хорошо. Да и бегать каждый раз на машину с бд тоже не фонтан.
← →
Desdechado © (2005-11-24 11:10) [24]ASDF234 (24.11.05 00:30) [17]
> ну базы под FireBird, yafil и interbase при вырубании питания летят
> периодически до сих пор
если ForcedWrites включить, то отлетают только незавершенные транзакции, что правильно
и бэкапить тоже иногда надо
> Так что без ИБП никуда!
это в любом случае
← →
ASDF234 (2005-11-26 23:28) [25]Desdechado © (24.11.05 11:10) [24]
согласен ForcedWrites, а вот бэкапитьне не у всех дол..бов желание есть (это уже личные проблемы)
← →
Alexandr Bydantcev © (2005-11-28 22:57) [26]Для небольшого количества клиентов можно и просто общую папку с базой открыть :)
← →
Valera (2005-12-01 01:06) [27]ты хочешь DBF на каком-то шумном сервере ставить чтобы шарить их в сеть и чтоб вся эта хрень не сильно напрягаясь быстро работала? Не забывай что на каждой машине в сети в этом случае нужно BDE для твоих клиентом инсталить. Спрыгивай лучше на MSSQL, mySql, Sybase, Oracle или хотя бы что-нибудь ADO-образное. Кстати модель базы можно наклепать даже с клиентами на VBA в MS Excel. В Delphi хорошо для этого использовать компоненты SQLquery, InfoPower 4000 и желательно FastReport чтоб никакая скотина в сети не тратила свое рабочее время на зановоперенаписаниетогочтоужебылосторазнаписано. Отчеты все равно понадобятся и будут нужны для всяких других жизненных гадостей. А сетевой диск можно настроить (хоть и необязательно) как внутренний файл-сервер с доступом только от клиентсой стороны программ но не пользователя. Это легко делается в домене W2K Advanced Server. В принципе можно оставить W2K просто как сервер и все.
← →
Alexandr Bydantcev © (2005-12-01 01:23) [28]2 Valera
К примеру, такая "хрень" работает в случае 1С. Но пошел уже оффтоп.
← →
alex_*** © (2005-12-01 09:39) [29]заточиться под Access, если соединений не десятки и данных не 500м, то все будет работать нормально. Дополнительно на клиента не надо ничего ставить. И доков куча
← →
Anatoly Podgoretsky © (2005-12-01 09:43) [30]alex_*** © (01.12.05 09:39) [29]
Это с каких пор такая гарантия появилась, как раз одна из проблем с Акцесс это отсутствие JET, ADO, DCOM
← →
Sergey13 © (2005-12-01 09:54) [31]2[29] alex_*** © (01.12.05 09:39)
>заточиться под Access, если соединений не десятки
Затачиваться изначально, для нового проекта, на Аксес, как сетевую БД, это по меньшей мере недальновидно. ИМХО.
← →
Anatoly Podgoretsky © (2005-12-01 09:59) [32]Sergey13 © (01.12.05 09:54) [31]
Особенно учитывая рекомендации Микрософт - не делать это и в самом Акцесс, Микрософт рекомендует использовать для базы MSDE, а чтобы подтолкнуть к этому он убрал JET из MDAC
← →
alex_*** © (2005-12-01 10:13) [33]на каких это операционках сейчас наблюдается отсутсвие JET, ADO, DCOM? на win95 только если DCOM не стоит. Но в setup закатать можно.
ну насчет того что проблемы в отсутствии JET, я бы сказал что внутри конторы парк машин зачастую боле-менее однообразен, по кр. мере к этому стараются придти. И проблем с отсутствеим jet быть не должно. По кр. мере можно и вручную проставить.
Конечно лучше сразу MSDE поставить. Только знаний нужно по-больше чтоб с ним работать.
← →
ANB © (2005-12-01 10:20) [34]
> Только знаний нужно по-больше чтоб с ним работать.
Базовых знаний по аксессу для начала вполне хватит. T-SQL не такой уж сложный язык, а в QA его вообще можно методом тыка изучать - шаблоны почти на все случаи жизни встроены. И BOL довольно подробен. MS даже если делает г., то уж обертку все равно красивую цепляет.
← →
alex_*** © (2005-12-01 10:29) [35]ну я бы не говорил что MS SQL это г. Ты видел сколько людям нужно труда чтоб перейти на клиент-сервер после файл-сервера? Хотя для программы с перспективами развития лучше действительно сразу на серверную БД переходить.
← →
ANB © (2005-12-01 10:32) [36]
> alex_*** © (01.12.05 10:29) [35]
Угу. 2 недели.
MS SQL это не совсем г. Это я образно так. И мне оракл больше нравится (сугубо личное мнение). Но вот поддержка пользователей в MS SQL Server сделана намного круче, чем в оракле, ничего не скажешь. Еще бы форматалку в QA добавили, вообще клево было бы.
← →
Sergey13 © (2005-12-01 10:37) [37]2 [36] ANB © (01.12.05 10:32)
> Но вот поддержка пользователей в MS SQL Server сделана намного круче, чем в оракле, ничего не скажешь.
В двух словах не раскажешь - чем. Я с МС не работал, просто интересно.
Сори за офтоп.
← →
ANB © (2005-12-01 10:42) [38]
> Sergey13 © (01.12.05 10:37) [37]
В QA встроен хелп. В QA встроены шаблоны для всех возможных языковых конструкций (их не так и много). Т.е. даже не зная MS SQL, но хотя бы минимально владея английским, можно его изучить просто полазив по пунктам меню. Для первых приложений вполне достаточно. Сложные вещи можно спросить на форуме. А оракл в стандарте поставляет только SQL Plus и HTML справку, в которой не так просто найти нужное.
← →
Sergey13 © (2005-12-01 10:45) [39]2[38] ANB © (01.12.05 10:42)
А-а-а. Ты вон про что. Я думал там типа роли/привилегии как то хитро устроены. Потому и спросил.
А это да. Не помешал бы встроенный инструмент типа Девелопера или ТОАДа.
Еще раз сори за офтоп. Завязываю.
← →
ANB © (2005-12-01 10:48) [40]
> Я думал там типа роли/привилегии как то хитро устроены.
Не, с пользователями базы там позапутаннее, чем в оракле. А гранты стандартные. Кстати, накопал, что в MS SQL можно вырубить все констрейнты или триггера таблицы одной командой без указания их имен, а в оракле - нельзя.
Страницы: 1 2 вся ветка
Форум: "Базы";
Текущий архив: 2006.01.29;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.037 c