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

Вниз

Организация сетевой базы данных   Найти похожие ветки 

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

Наверх




Память: 0.58 MB
Время: 0.028 c
2-1137152908
SarDoX
2006-01-13 14:48
2006.01.29
IE и delphi


8-1124463831
Артём
2005-08-19 19:03
2006.01.29
Проблема с DBCLICK


6-1129805396
Aven_
2005-10-20 14:49
2006.01.29
WinInet http auth


2-1136836506
ArtemESC
2006-01-09 22:55
2006.01.29
Автозагрузка...


15-1136227204
Nic
2006-01-02 21:40
2006.01.29
Сколько стоит