Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.04 c
1-1135175445
w666w
2005-12-21 17:30
2006.01.29
Скопировать компонент в Clipboard


3-1133341500
MU
2005-11-30 12:05
2006.01.29
MS 2000 Server, SQL Server, MSDTC


2-1136392666
worldmen
2006-01-04 19:37
2006.01.29
Вставить пароль при загрузке.


15-1136220114
Логин
2006-01-02 19:41
2006.01.29
Мобильник как пульт ДУ


15-1136652047
Onlerton
2006-01-07 19:40
2006.01.29
проекты и программисты





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский