Файл-серверная БД (Paradox)
, Сетевая БД
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.210] |
|
|
ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi
Файл-серверная БД (Paradox)
, Сетевая БД
|
Сообщ.
#1
,
|
|
|
|
Привет.
Возникла такая проблема: Создана БД с помощью таблиц Paradox - обычно так делается локальная БД, но если подключить сетевой диск с папкой, где находится БД, то можно иметь доступ из сети. Сначала попробовал z: подключить как C:\DB (т.е. на локальной машине, но через сетевой диск) - все работает без проблем. , а потом z: подключил как \\server\db возникает ошибка доступа, к чему и что за ошибка трудно определить, т.к. запускается exe, а не dpr в Delphi. И если кто знает порядок работы BDE при одновременном доступе к БД через сеть напишите ПЛЗ. |
|
Сообщ.
#2
,
|
|
|
|
Попробуй создать сетевой диск.
Я решал эту же проблему именно так. |
|
Сообщ.
#3
,
|
|
|
|
Цитата mmihaylovich, 26.07.04, 13:15 подключил как \\server\db возникает ошибка доступа, к чему и что за ошибка трудно определить, т.к. запускается exe, а не dpr в Delphi. А путь в алиасе изменил? |
|
Сообщ.
#4
,
|
|
|
|
Цитата сначало в map создать диск а потом создать алиас в BDE и настроить.mmihaylovich, 26.07.04, 13:15 z: подключил как \\server\db возникает ошибка доступа, к чему и что за ошибка трудно определить, т.к. запускается exe, а не dpr в Delphi. например Z:\DB |
|
Сообщ.
#5
,
|
|
|
|
Kobra у меня и так работает -".\\server\db" и диск можно не подкдлючать, но с диском удобней.
|
|
Сообщ.
#6
,
|
|
|
|
Я создавал сетевой диск.
Подключено вроде правильно. Даже частично работает. ![]() Одна часть программы обращается к одним таблицам, а другая к другим. Вот первая часть нормально работает с данными, а переходишь к другим, так сразу ошибку выдает (но только если на другом ПК, на локальном работает ).Данные в одном Алиасе. |
|
Сообщ.
#7
,
|
|
|
|
провер компоненты доступа, и вообще исползуи TDataBase и все компоненты доступа настрои на него
|
|
Сообщ.
#8
,
|
|
|
|
Сейчас попробовал на других ПК, ничего при этом в коде не изменяя.
Вроде как все работает. Но пока еще интересно как БД будет вести себя с одновременным доступом (изменением, ввод новых данных) к ней по сети. |
|
Сообщ.
#9
,
|
|
|
|
Цитата mmihaylovich, 26.07.04, 15:14 Но пока еще интересно как БД будет вести себя с одновременным доступом (изменением, ввод новых данных) к ней по сети. А это как написал (блокировки,экслюзтвный доступ и т.д.) |
|
Сообщ.
#10
,
|
|
|
|
Цитата А это как написал (блокировки,экслюзтвный доступ и т.д.) А это пока никак не написал |
|
Сообщ.
#11
,
|
|
|
|
Цитата mmihaylovich, 27.07.04, 13:03 А это пока никак не написал значит, работать не будет... |
|
Сообщ.
#12
,
|
|
|
|
Плохо будет работать, при том готовься к самому худшеиу.
Из того, что есть это самый паршивый формат. Использовал бы лучше dBase или Access, на порядок более стабильнее. |
|
Сообщ.
#13
,
|
|
|
|
Цитата Anatoly Podgoretsky @ 27.07.04, 18:49 Использовал бы лучше dBase или Access, на порядок более стабильнее. Не утверждаю, что не так, просто интересно откуда такая мысль? |
|
Сообщ.
#14
,
|
|
|
|
Цитата BackSlash, 28.07.04, 11:22 Цитата (Anatoly Podgoretsky @ 27.07.04, 18:49) Использовал бы лучше dBase или Access, на порядок более стабильнее. Не утверждаю, что не так, просто интересно откуда такая мысль? это аксиома просто формат Paradox разработан, а системы управления под него практически не развиваются |
|
Сообщ.
#15
,
|
|
|
|
если правильно парадоксом пользоваться, то никаких проблем он не доставляет.
Я почитал сообщения - вижу попытку многопользовательского доступа к DB PARADOX, а каких-то действий к этому нет. 1. Все компьютеры работающие с этой дб должны иметь в настройках БДЕ ключ LOCAL SHARE = TRUE. 2. Особой разницы как прописывать алияс через сетевой диск или просто расшаренный ресурс нет, но здесь важно чтобы у всех он был прописан одинаково (причем это пожелание касается обычно любых БД, а не только ПАРАДОКС). 3. Ключь БДЕ NET DIR. Вот здесь без сетевого диска не обойтись просто потому, что так удобнее. Причем даже для той машины на которой этот dir находится и на всех машинах это должен быть одинаковый (в смысле буква) сетевой диск. Таким образом все пользователи из сети будут иметь доступ к БД через одни и те же локфайлы, полный путь к которым на каждой машине будет одинаковый. Последнее замечание не всегда критично, но на разных виндах в случае несоответствия могут быть совершенно разные результаты. |
|
Сообщ.
#16
,
|
|
|
|
Парадокс - это всего навсего формат хранения, и, как сказал
Цитата H.Iglesias II, 28.07.04, 12:56 если правильно парадоксом пользоваться, то никаких проблем он не доставляет. это действительно так. есть мнение, что BDE, не совсем правильно пользуется парадоксом. откуда столько нареканий. В драйвере доступа к данным через BDE не совсем коррекно реализована многопользовательская работа. может стоить сменить технологию доступа к данным Парадокс, напимер, вместо BDE использовать ADO. отклики при работе с Парадоксом через ADO более положительные нежели чем через BDE. |
|
Сообщ.
#17
,
|
|
|
|
Цитата Cогласен , и не только с Paradox'ом. ych_boriss, 28.07.04, 12:14 отклики при работе с Парадоксом через ADO более положительные нежели чем через BDE. |
|
Сообщ.
#18
,
|
|
|
|
Цитата ych_boriss @ 28.07.04, 12:14 есть мнение, что BDE, не совсем правильно пользуется парадоксом. откуда столько нареканий. В драйвере доступа к данным через BDE не совсем коррекно реализована многопользовательская работа. может стоить сменить технологию доступа к данным Парадокс, напимер, вместо BDE использовать ADO. отклики при работе с Парадоксом через ADO более положительные нежели чем через BDE. большинство не подозревает, что программа bdeadmin предназначена не только для заведения альсов, но и для настройки БДЕ. Все нарекания на работу БДЕ вытекают только из неумения им пользоваться. И это касается не только БДЕ, а абсолютно всех СЕРЬЕЗНЫХ программ начиная с Виндовс. Многопользовательская работа в БДЕ реализована достаточно корректно (у нас за те годы как мы этим пользуемся притензий не возникало ), если БДЕ НАСТРОЕН для многопользовательского режима. |
|
Сообщ.
#19
,
|
|
|
|
Ну насчет почему Paradox?
Была поставлена задача написать БД, используя Delphi. При этом есть знания по реляционным БД и Делфи (совместно не использовал). Ну я долго не мудрствуя открыл книжечку, которая у меня была "Delphi 4 для разработчиков БД" Фаронова. А там рассматривают три подхода: Файл-сервер, Клинет-Сервер, Трехзвенная архитектура. Также описаны недостатки и достоинства каждой. И начал с простого, и там описано использование таблиц Paradox (для файл-сервер) с помощью BDE. Притом когда давали задание дали пример СУБД, которая также использует BDE & Paradox. Ничего плохого пока не замечал, конечно были минусы типа защита паролем при наличии суперпароля ,небольшие непонятки с сетью (ну это наверно из-за неопытности). Теперь вернемся к сети. Цитата Ключь БДЕ NET DIR. NET DIR за что отвечает? Туда копируются временные таблицы или как? Цитата Вот здесь без сетевого диска не обойтись просто потому, что так удобнее Второй сетевой диск? Один для PATH, а второй для NET DIR? |
|
Сообщ.
#20
,
|
|
|
|
Цитата H.Iglesias II, 28.07.04, 13:33 Многопользовательская работа в БДЕ реализована достаточно корректно (у нас за те годы как мы этим пользуемся притензий не возникало ), если БДЕ НАСТРОЕН для многопользовательского режима. а у нас все с точностью до наоборот. хотя, возможно, все дело может быть в неправильных настройках БДЕ для многопользовательского режима. НО, БДЕ+Парадокс нам не подходит из-за низкой производительности. пороэтому было прянято решения выбрать СУБД, работающее в архитектуре Клиент-Сервер (Interbase). |
|
Сообщ.
#21
,
|
|
|
|
Цитата mmihaylovich @ 28.07.04, 12:35 Теперь вернемся к сети. Цитата Ключь БДЕ NET DIR. NET DIR за что отвечает? Туда копируются временные таблицы или как? Цитата Вот здесь без сетевого диска не обойтись просто потому, что так удобнее Второй сетевой диск? Один для PATH, а второй для NET DIR? ![]() NET DIR - каталог для файлов совместного доступа. Т.е. там хранится файл Pdoxusrs.net в котором указывается кто с чем работает в данный момент. Этот файл отвечает за то, что система коректно позволяет работать нескольким клиентам с одними и теми же данными. Если у разных клиентов эти директории разные, то информацию о себе они будут заносить в разные файлы, а те уже в свою очередь не дадут друг другу до этих данных добраться. Точнее тот кто доберется первым не пустит второго. Если полные пути к этим файлам с разных клиентов отличаются, хотя и указывают на один каталог в сети, на разных ОС могут происходить глюки, когда в лок файле будет информация что совместный доступ к данным контролируется 2-мя разными файлами, хотя они и указувают в итоге один и тот- же файл. 2. Путь к альясу и NET DIR - это никак не связанные вещи. Имелось в виду вот что: в сети назначен расшаренный каталог для организации совм. доступа к ПАРАДОКС (допустим \\SERVER\DB\NETS). на каждой машине создается сетевой диск (одинаковая буква, допустим "P") с путем в эту папку. Он может окольными путями в него попадать. Очень важный момент, что на машине где эта папка находится ТАКЖЕ НУЖНО СДЕЛАТЬ ТАКОЙ ДИСК. т.е. по сети обращается сам к себе. и у всех этот диск назначается в NET DIR = P:\. Еще LOCAL SHARE отвечает за то, как сохраняются данные на диск. Если TRUE, то данные сохраняются после каждого Post(), если FALSE то сохраняются только после закрытия соответствующего набора данных. По умолчанию, кстати, FALSE. Непонятно почему... Добавлено в : Цитата ych_boriss @ 28.07.04, 12:55 Цитата H.Iglesias II, 28.07.04, 13:33 Многопользовательская работа в БДЕ реализована достаточно корректно (у нас за те годы как мы этим пользуемся притензий не возникало ), если БДЕ НАСТРОЕН для многопользовательского режима. а у нас все с точностью до наоборот. хотя, возможно, все дело может быть в неправильных настройках БДЕ для многопользовательского режима. НО, БДЕ+Парадокс нам не подходит из-за низкой производительности. пороэтому было прянято решения выбрать СУБД, работающее в архитектуре Клиент-Сервер (Interbase). Согласен 100%. IB foreva. Когда все начиналось у нас и ПАРАДОКС УСТРАИВАЛ просто потому, что было достаточно других проблем Мы счас потиху переводим на IB. |
|
Сообщ.
#22
,
|
|
|
|
Большое спасибо за подробное объяснение.
Надеюсь данная информация будет полезна не только мне. |
|
Сообщ.
#23
,
|
|
|
|
Да наговорили тут всего. И правды и неправды.
Ну и бог с ним, а вот какие проьлемы будут, так это порча индексов, порча автоинкриментных полец, проблемы с *.net и *.lcк файлами, блокировка каталога. Это то что будет происходить постоянно при более менее активной работые в сети и особенно с ростом размеров таблиц. |
|
Сообщ.
#24
,
|
|
|
|
Цитата Anatoly Podgoretsky @ 29.07.04, 20:33 Да наговорили тут всего. И правды и неправды. Ну и бог с ним, а вот какие проьлемы будут, так это порча индексов, порча автоинкриментных полец, проблемы с *.net и *.lcк файлами, блокировка каталога. Это то что будет происходить постоянно при более менее активной работые в сети и особенно с ростом размеров таблиц. и что же здесь неправда? Если надо работать активно, в сети да с большими таблицами, да сотни клиентов, то это не к Парадоксу. Он не для этого в принципе. Надо использовать СУБД, любая из которых имеет свои недостатки. Любую БД при желании запороть проще простого... У меня не теоретические рассуждения типа "что будет" - у меня есть реально работающая система 7 дней в неделю 24 часа в сутки с сервером и десятком клиентов. Как атавизм предыдущих разработок там используется Парадокс. Не скажу, что на нем все основано, но пишется и читается из него постоянно. За почти 2 года эксплуатации проблемы возникали, но ни одна не связана с Парадоксом. |
|
Сообщ.
#25
,
|
|
|
|
Цитата бывает, но если программа клиент написан коректно, краине редко. так я написал ону прогу с парадоксом, гдето чтото не учел видимо. иногда в ден несколько раз приходится индекс восстоновливать, а так месяцами работает как миленки (искать просчет я уже не буду).H.Iglesias II, 30.07.04, 10:43 так это порча индексов Цитата бывает, но если программа написана коректно, не происходит.Anatoly Podgoretsky, 29.07.04, 20:33 порча автоинкриментных полец Цитата ета проблема винды, иногда мап расстраивается.Anatoly Podgoretsky, 29.07.04, 20:33 проблемы с *.net Цитата ну, такое происходит если не коректно завершают работу.Anatoly Podgoretsky, 29.07.04, 20:33 *.lcк файлами Цитата опять таки, как программа написана. когда пишеш для многоползовательского режима, нужно применять кое какие хитрости.Anatoly Podgoretsky, 29.07.04, 20:33 блокировка каталога так что, по моему мнениу, все зависит от разработчика а не от парадокс. а вообше то парадокс ето парадокс! |
|
Сообщ.
#26
,
|
|
|
|
Какой МАП себе заранее устраивать неприятность.
Причины зависания не интересуют, интересуют последствия. Парадокс автоматически делает блокировки, не повлияешь. Индексы рдактируются на машине пользователся, потом полностью переписываются, это конечно касается всех десктопных баз, но Парадокс это делает плохо, поэтому часто слетают по сравнению с другими форматами. Все недостатки Парадокса сравниваются с другми десктопными базами, не в коей мере не клиент серверными. Вот здесь Парадокс выглядит неприглядно. |
|
Сообщ.
#27
,
|
|
|
|
переливание из пустого в порожнее.
|
|
Сообщ.
#28
,
|
|
|
|
Цитата Anatoly Podgoretsky, 30.07.04, 15:17 Парадокс автоматически делает блокировки, не повлияешь. Цитата вот в етом схитрить можно.Kobra, 30.07.04, 14:31 когда пишеш для многоползовательского режима, нужно применять кое какие хитрости. а вобшем, я считаю что многоролзователскую базу нада делать клиент сервером. но начинаюшие считают (я такимже был) что легче освоить рарадокс или аксес чем интербеис или ... в принцыпе так и есть, азы постигать там легче. |
|
Сообщ.
#29
,
|
|
|
|
Недавно мне открыли большую тайну любви к Парадоксу, оказалось что примеры у Архангельского на Парадоксе
|
|
Сообщ.
#30
,
|
|
|
|
Цитата так это порча индексов Цитата порча автоинкриментных полец Каким образом они портятся и способы их восстановления? |
|
Сообщ.
#31
,
|
|
|
|
с индексом просто, удолить и снова создать.
|
|
Сообщ.
#32
,
|
|
|
|
Цитата mmihaylovich,2.08.04, 14:05 Каким образом они портятся и способы их восстановления? У Борланда на сайте есть библиотеки, по одной под каждую версию БДЕ. |