На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
! информация о разделе
user posted imageДанный раздел предназначается для обсуждения вопросов использования баз данных, за исключением составления запросов на SQL. Для этого выделен специальный раздел. Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Chow, Bas, MIF, JoeUser
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Объясните на "пальцах": может ли Access DB быть серверной?
Всем привет! Сходу к делу!
Много читал и запутался в итоге)

Постараюсь коротко и самую суть. Есть программа MS Access. Поставляется вместе с пакетом MS Office. В Access удобно создавать настольные приложения. Можно создать БД + интерфейс к ней. Как понимаю, вся информация о данных + метаданных БД хранится в файле *.mdb (microsoft database).

Клиент-серверная архитектура (классическая двузвенка): на "тонком" клиенте интерфейс, который программируется, например, на C#, на "толстом" сервере лежат данные в виде базы данных. Также на сервере специализированное ПО вида СУБД/СУРБД. Вообще, если грубо, под сервером я понимаю более производительный комп + спец.ПО.

Считается, что MS Access заточен под файл-серверную технологию, а разве нельзя преобразовать ее в клиент-серверную. Например, клиент на C#, на сервере файл *.mdb.

Как я понимаю, *mdb файл с данными, но там нет встроенного интерпретатора анализа запросов и пр., т е того, что встроено в MS SQL Server, например.

Пример: у меня есть 2 компа (пусть 1 более мощный, типа он будет выступать Сервером). На Сервере нет инсталлированного пакета MS Office. У меня есть БД с расширением *.mdb, который я кладу в какую-нибудь папку на Сервер. На клиенте есть C#. Я ведь могу, используя, например, поставщик OLEDB, ODBC с клиента подключится к файлу баз данных *.mdb, располагающегося на Сервере и получать данные посредством технологии ADO.NET?? Это будет считаться клиент-серверной технологией, когда на клиенте C#, а на Сервере БД акссессовская??

P.S. про всякие Jet движки не стал писать и пр., но думаю итак понятно, что я спрашиваю)
I originate
You must appreciate, all the others imitate

SCOOTER "GUEST LIST"

'Pon the mic I'm the teacher!
Spread my words like a preacher!
Yiiihhaaaa!!!!

SCOOTER "WEEKEND"
Цитата FasterHarder @
Считается, что MS Access заточен под файл-серверную технологию, а разве нельзя преобразовать ее в клиент-серверную.

Нет
Цитата FasterHarder @
Например, клиент на C#, на сервере файл *.mdb.
У меня есть БД с расширением *.mdb, который я кладу в какую-нибудь папку на Сервер. На клиенте есть C#. Я ведь могу, используя, например, поставщик OLEDB, ODBC с клиента подключится к файлу баз данных *.mdb, располагающегося на Сервере и получать данные посредством технологии ADO.NET??

Данные получать/изменять можно.

Цитата FasterHarder @
Это будет считаться клиент-серверной технологией, когда на клиенте C#, а на Сервере БД акссессовская??

Нет.
Сообщение отредактировано: Bas -
Цель - ничто , процесс - все.
Bas, слушай, можешь поконкретнее, ты ведь ас в Аксесе и про него ВСЕ знаешь)!

Цитата Bas @
Это будет считаться клиент-серверной технологией, когда на клиенте C#, а на Сервере БД акссессовская??

Нет.


потому что на Сервере нету СУРБД, а в *mdb она не встроена? а разве поставщики данных ODBC не обеспечивают встроенную поддержку СУРБД )?
I originate
You must appreciate, all the others imitate

SCOOTER "GUEST LIST"

'Pon the mic I'm the teacher!
Spread my words like a preacher!
Yiiihhaaaa!!!!

SCOOTER "WEEKEND"
Способы совместного использования базы данных Access
Цитата
Совместное использование базы данных с помощью сервера
Совместное использование базы данных можно организовать с помощью приложения Access и сервера баз данных (например, сервера SQL Server). Этот способ обеспечивает много преимуществ, но для него требуется дополнительное программное обеспечение — сервер баз данных.

Этот способ напоминает разделение баз данных, поскольку таблицы хранятся в сети, а у каждого пользователя есть локальная копия файла базы данных Microsoft Access, содержащая ссылки на таблицы, запросы, формы, отчеты и другие объекты базы данных. Этот вариант используется, если сервер баз данных доступен, а у всех пользователей установлено приложение Access. Преимущества этого метода зависят от используемого программного обеспечения сервера баз данных, но в общем случае они включают наличие учетных записей пользователей и избирательный доступ к данным, отличную доступность данных и удобные встроенные средства управления данными. Более того, большинство серверных приложений для работы с базами данных нормально работают с более ранними версиями Access, поэтому не требуется, чтобы все пользователи работали с одной и той же версией. Совместно используются только таблицы.


Добавлено
Цитата FasterHarder @
а разве поставщики данных ODBC не обеспечивают встроенную поддержку СУРБД )?

Они обеспечивают доступ к таблицам *mdb но к отчетам , формам ... - нет.
Поэтому на каждом клиенте надо держать свою версию отчетов. А если он не обновил версмю?
Сообщение отредактировано: Bas -
Цель - ничто , процесс - все.
Цитата Bas @
Они обеспечивают доступ к таблицам *mdb но к отчетам , формам ... - нет.
Поэтому на каждом клиенте надо держать свою версию отчетов. А если он не обновил версмю?


погоди-погоди, ты говоришь не только про табл.данные, а даже про интерфейс (формы). Интерфейс на клиенте на С#.
Вот эти провайдеры ОДБС, ОЛЕДБ они ведь подключаются к файлу *.mdb, как-то химичат с ним, вычленяют данные, связи, ключи + умеют интерпретировать запросы. Или нет?

поясни на "пальцах", почему я не могу положить файл *.mdb ТОЛЬКО С ТАБЛИЦАМИ И ДАННЫМИ на сервант и подключатся из клиента на C# посредством АДО.НЕТ к этому файлу, отсылая всякие запросы, аля "Select * from Car where CarID = 3"??
I originate
You must appreciate, all the others imitate

SCOOTER "GUEST LIST"

'Pon the mic I'm the teacher!
Spread my words like a preacher!
Yiiihhaaaa!!!!

SCOOTER "WEEKEND"
Цитата FasterHarder @
я не могу положить файл *.mdb ТОЛЬКО С ТАБЛИЦАМИ И ДАННЫМИ на сервант и подключатся из клиента на C# посредством АДО.НЕТ к этому файлу, отсылая всякие запросы, аля "Select * from Car where CarID = 3"??

Можно (и это делают), но это файл-сервер.

Цитата FasterHarder @
Вот эти провайдеры ОДБС, ОЛЕДБ они ведь подключаются к файлу *.mdb,

Да
Цитата FasterHarder @
как-то химичат с ним, вычленяют данные, связи, ключи + умеют интерпретировать запросы.

НЕТ, это не то слово "химичат", они получают результат этой "химии" а провайдеры "ни сном ни духом" что они там "химичат".
Цель - ничто , процесс - все.
Цитата FasterHarder @
Считается, что MS Access заточен под файл-серверную технологию

База данных MS Access есть всего лишь файл-контейнер. Относись к нему как к каталогу, в котором лежат файлы данных, файлы скриптов, файлы форм, прочая шелуха... И всю эту ерунду обрабатывает внешний интерпретатор с исполняемым модулем по фамилии MSACCESS.EXE.
Цитата FasterHarder @
а разве нельзя преобразовать ее в клиент-серверную. Например, клиент на C#, на сервере файл *.mdb.

Да пжалста... но из показанной выше аналогии - дополнительный гимор с отслеживанием интерференций одновременного доступа, который сваливается на плечи операционок (и сервера, и клиента) и обслуживается отдельным файлом блокировок (к которому тоже совместный доступ, который отслеживается... ну ты понял).
Цитата FasterHarder @
потому что на Сервере нету СУРБД, а в *mdb она не встроена?

Нет, не поэтому. А потому, что в этом случае .MDB файл в принципе ничем не отличается от, к примеру, .DBF-файла - это просто файл с данными, который для удобства внутри является кластеризованным контейнером с позиционным доступом. А весь гимор с поиском нужного кластера, расчётом его местоположения и смещения в нём, валится на плечи драйвера доступа - и в т.ч. обслуживание взаимоблокировок.
Цитата FasterHarder @
почему я не могу положить файл *.mdb ТОЛЬКО С ТАБЛИЦАМИ И ДАННЫМИ на сервант и подключатся из клиента на C# посредством АДО.НЕТ к этому файлу, отсылая всякие запросы, аля "Select * from Car where CarID = 3"??

А кто их там будет принимать и обрабатывать? .MDB - это файл ДАННЫХ. В нём исполняемого кода нет - от слова "вообще".
Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
Есть претензии ко мне как к участнику? да ради бога.
Не нравятся мои ответы? не читайте их.
В общем, берегите себя. Нервные клетки не восстанавливаются.
Akina, отлично, я еще кое-что понял.
В моем понимании, без СУБД/СУРБД невозможно получить в принципе архитектуру клиент-сервер. Т е вся нагрузка по обработке данных ложится должна на Сервер (он - "толстый" клиент).
А такая ситуация: на Сервере есть файл MSACCESS.EXE, который запускаем какой-нить удаленной службой (ну, не суть), также на Сервере лежит файл с данными *.mdb. Т е получается, что в принципе есть СУБД на Серваке, которая может работать с файлами *.mdb. На др.компе-клиенте есть интерфейс на Visual Basic. Коннектимся к файлу *.mdb и отправляем запросы, посредством ADO.NET, например. Разве это не будет клиент-сервером??
I originate
You must appreciate, all the others imitate

SCOOTER "GUEST LIST"

'Pon the mic I'm the teacher!
Spread my words like a preacher!
Yiiihhaaaa!!!!

SCOOTER "WEEKEND"
Цитата FasterHarder @
на Сервере есть файл MSACCESS.EXE, который запускаем какой-нить удаленной службой (ну, не суть), также на Сервере лежит файл с данными *.mdb. Т е получается, что в принципе есть СУБД на Серваке, которая может работать с файлами *.mdb. На др.компе-клиенте есть интерфейс на Visual Basic. Коннектимся к файлу *.mdb и отправляем запросы, посредством ADO.NET, например. Разве это не будет клиент-сервером??

Чтобы получить клиент-сервер, тебе надо коннектиться не MDB (файлу данных), а к некоему выполняемому там, на сервере, исполняемому коду - то есть к запущенному там, на сервере, MSACCESS.EXE. Вот только выполняющийся MSACCESS.EXE - это "вещь в себе", к коей (если нет в текущей его БД некоего "слушающего" кода, формирующего свой сервер). И ему на какие-то там извнешние ADO.NET чхать с высокой колокольни - у него и входов-то таких нету. Им можно снаружи "порулить" только по DDE через Access.Application, что для исполняемого на удалённом сервере процесса задачка весьма нетривиальная. Но если в базе на VBA состряпать какой-нить сокет-сервер - то пжалста, будет тебе клиент-сервер. Не ADO, конечно (не, можно и ADO, но это ж сколько коду нарисовать потребуется!), но тем не менее... вот только использовать нормальный готовый сервер го-о-ораздо проще. К тому же некоторые умеют использовать файлы MDB в качестве файла-хранилища данных вместо своих родных файловых форматов (геморройно, с ограничениями, но тем не менее).
Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
Есть претензии ко мне как к участнику? да ради бога.
Не нравятся мои ответы? не читайте их.
В общем, берегите себя. Нервные клетки не восстанавливаются.
Akina, так, стало еще понятнее)) но и сложнее становится понимать)
я уже выкупил, что клиент-сервера быстро на файлах *.mdb не получить!
Еще вопрос, пусть дилетантский: а вот эти вот поставщики/провайдеры, аля ОЛЕДБ, ОДБС разве не могут связать MSACCESS.EXE с файлом *.mdb, чтобы можно было потом запросы отсылать и все всЁ понимали на Сервере, что нужно делать?)
I originate
You must appreciate, all the others imitate

SCOOTER "GUEST LIST"

'Pon the mic I'm the teacher!
Spread my words like a preacher!
Yiiihhaaaa!!!!

SCOOTER "WEEKEND"
Цитата FasterHarder @
а вот эти вот поставщики/провайдеры, аля ОЛЕДБ, ОДБС разве не могут связать MSACCESS.EXE с файлом *.mdb

Ну они же не запускают исполняемый код - тем более на удалённом сервере...
Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
Есть претензии ко мне как к участнику? да ради бога.
Не нравятся мои ответы? не читайте их.
В общем, берегите себя. Нервные клетки не восстанавливаются.
Цитата Akina @
Ну они же не запускают исполняемый код - тем более на удалённом сервере...

ну, ясно...
в общем, если нужен клиент-сервер, то нужно искать СУРБД, которая интегрирует файлы *.mdb, иначе придется писать с нуля НОВУЮ технологию к БД))
Akina big спс за пояснения!

P.S. еще читал, что приложение Аксесовское бьют на 2 части, образовывая файл вроде с расширением *.adp и это некая имитация клиент-сервера, но только в этом случае Клиент будет на Access, а др.язык, например, С-диез нельзя...
I originate
You must appreciate, all the others imitate

SCOOTER "GUEST LIST"

'Pon the mic I'm the teacher!
Spread my words like a preacher!
Yiiihhaaaa!!!!

SCOOTER "WEEKEND"
FasterHarder, может есть смысл воспользоваться клиент-серверной СУБД и не париться с аксесом?
Цитата FasterHarder @
еще читал, что приложение Аксесовское бьют на 2 части, образовывая файл вроде с расширением *.adp и это некая имитация клиент-сервера

ADP - это ПРОЕКТ MS Access. Интерфейс в Аксе, а данные в MS SQL. И да,это уже получается клиент-сервер.
А когда бьют на две части, то обе они MDB. В одной только данные, в другой интерфейс. И тоже файловый доступ.
Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
Есть претензии ко мне как к участнику? да ради бога.
Не нравятся мои ответы? не читайте их.
В общем, берегите себя. Нервные клетки не восстанавливаются.
Цитата Akina @
И тоже файловый досту

:yes:

Добавлено
Цитата Akina @
И тоже файловый доступ.

:yes:

Добавлено
Видел варианты, но это ...
и работает "через пень колоду"
Цель - ничто , процесс - все.
1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
0 пользователей:


Рейтинг@Mail.ru
[ Script Execution time: 0,1734 ]   [ 20 queries used ]   [ Generated: 17.11.18, 06:45 GMT ]