Надлежащий способ программировать Базу данных Бэкенда Microsoft Access в Пользовательской среде

Насколько я знаю в Java, все методы являются виртуальными по умолчанию. Дело обстоит не так с C#, таким образом, необходимо отметить методы базового класса с "виртуальным", например, protected virtual string getMood() ... и переопределения с "переопределением", например, protected override string getMood()....

5
задан 6 revs 13 July 2009 в 14:47
поделиться

4 ответа

Единственными убедительными ответами на данный момент, похоже, являются уменьшение сетевого трафика и обеспечение невозможности отказа оборудования.

Я считаю эти ответы неудовлетворительными по ряду причин.

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

  2. Обвинение сбоев базы данных Access в сбоях оборудования не является оправданной позицией. Пользователи будут (справедливо) утверждать, что другое их программное обеспечение не страдает от подобных проблем.

Повреждение базы данных Access - не мнимая проблема. Люди, которые регулярно предполагают, что от 5 до 20 пользователей - это верхний практический предел для приложений Access, говорят исходя из своего опыта.

1
ответ дан 14 December 2019 в 08:58
поделиться

См. Также Часто задаваемые вопросы о поврежденных MDB Microsoft Access , которые я скомпилировал на протяжении многих лет на основе сообщений групп новостей и предшествовал странице Аллена. Тем не менее, у моих клиентов было очень мало повреждений за эти годы, и они никогда не теряли данные, и им не приходилось восстанавливать из резервной копии.

Я не уверен, что означает «правильно напишите свою программу» в этом контексте. Я прочитал несколько сообщений, указывающих на это, но это больше аспекты реализации. Как указал Альберт, вам необходимо разделить базу данных и предоставить каждому пользователю собственную копию FE MDB / MDE. Вы не можете получить доступ к внутреннему MDB через беспроводную сетевую карту, поскольку они слишком нестабильны. То же самое с WAN, если только WAN не очень быстрая / широкая и очень стабильная. Затем мы предлагаем перейти на SQL Server или использовать службы терминалов / Citrix.

У меня есть несколько клиентов, в которых в течение всего дня работают от 20 до 25 пользователей. Один MDB имеет 120 таблиц, а другой - 160 таблиц. В нескольких таблицах содержится от 600 000 до 800 000 записей. У одного клиента было 4 или 5 повреждений за пять или семь лет. Мы выяснили причины всех, кроме двух. И они так или иначе были связаны с оборудованием. По крайней мере одно из этих приложений должно было быть увеличено до SQL Server. Однако это было отменено для меня PHB Дилберта (заостренный босс).

По крайней мере одно из этих приложений должно было быть увеличено до SQL Server. Однако это было отменено для меня PHB Дилберта (заостренный босс).

По крайней мере одно из этих приложений должно было быть увеличено до SQL Server. Однако это было отменено для меня PHB Дилберта (заостренный босс).

1
ответ дан 14 December 2019 в 08:58
поделиться

Если вы ищете отличный пример того, каких приемов программирования вам следует избегать, первое место в списке обычно занимает НЕ запускать разделенную базу данных. Номер два не размещает интерфейс на каждом компьютере.

Например, на вышеупомянутом плакате были всевозможные проблемы, но вы можете делать ставку на то, что их ошибка заключалась либо в том, что у них не было разделения данных, либо они не были Я не размещаю программное обеспечение (интерфейс) на каждом компьютере.

Что касается человека, который вынужден прибегать к каким-то странным механизмам блокировки, это довольно странно и не обязательно. Access (на самом деле механизм данных JET, теперь называемый ACE) имеет встроенную функцию блокировки строк с момента выхода Office 2000.

Я уже около 12 лет коммерчески развертываю приложения с письменным доступом. За все эти годы у меня была одна коррупция от ОДНОГО клиента.

Имейте в виду, что до того, как Microsoft начала продвигать и продавать SQL-серверы, они оценили ядро ​​базы данных JET примерно на 50 пользователей. Хотя у моих клиентов нет проблем, в 9 из 10 случаев, когда у кого-то есть проблема, вы обнаруживаете, что номер один в списке - это то, что им не удалось разделить базу данных или они не устанавливают лицевую часть частично на каждом компьютере.

Что касается методов кодирования или советов? Любой проект программы, который вы создаете и при котором в форму загружается меньшее количество записей, является отличным началом в ваших проектах. Другими словами, вы никогда не захотите просто создать форму, прикрепленную к большой таблице, не ограничивая записи, которые будут загружены в форму. Это, вероятно, совет номер один, который я могу здесь дать.

Например, нет смысла загружать в банкомат мгновенного сообщения номер счета каждого, и ЗАТЕМ спросите пользователя, с каким номером счета работать. На самом деле я спросил 80-летнюю бабушку, имеет ли эта идея какой-либо смысл, и даже она могла это понять. Гораздо более разумно спросить пользователя, с какой учетной записью работать, а затем просто загрузить одного клиента.

Вышеупомянутая концепция применима к разделенной базе данных в сети. Если вы спросите у пользователя номер учетной записи клиента, а ЗАТЕМ откроете форму для одной записи с предложением where, то даже со 100000 записей в бэкенде время загрузки формы будет почти мгновенным, потому что будет только ОДНА ЗАПИСЬ. перетаскивается из стола клиентов по сетевому проводу.

Также имейте в виду, что на рынке существует большое количество коммерческих приложений, таких как просто бухгалтерский учет, которые используют серверную часть Jet (на самом деле вы можете просто открывать файлы бухгалтерского учета с доступом MS , они переименовали расширения, чтобы скрыть этот факт, но это mdb-файл для доступа).

У некоторых моих клиентов 3-5 пользователей с наушниками, и они весь день работают с моим программным обеспечением для бронирования. Многие из них забронировали более 40 000+ клиентов, и за 10-летний период НИ ОДИН из них не пробовал. (Вышеупомянутый пример коррупции был на самом деле в однопользовательской системе, хотите верьте, хотите нет.)

Итак, у меня никогда не было ни одного обращения в службу поддержки из-за надежности моих продуктов доступа. С другой стороны, в этом приложении всего 160 форм и около 30 000 строк кода. Он имеет около 65 тесно связанных и норализованных таблиц (принудительные связи, а также каскадное удаление).

Таким образом, здесь не требуется особого подхода к программированию для многопользовательских приложений, за исключением хороших проектов, которые снижают требования к пропускной способности.

В конце концов, оказывается, что хорошие приложения - это те, которые не загружают ненужные записи в форму. Оказывается, когда вы разрабатываете свои приложения таким образом, когда вы меняете свою внутреннюю часть на SQL-сервер, вы обнаруживаете, что этот подход приводит к очень небольшому количеству работы, необходимой для того, чтобы ваш интерфейс доступа отлично работал с серверной частью SQL-сервера.

На Последний подсчет Я думаю, что это оценка около 100 миллионов пользователей доступа по всему миру. Access, безусловно, является самым популярным ядром баз данных для настольных компьютеров, и по большей части пользователи находят, что они работают без проблем.

Единственные люди, у которых есть проблемы с работой в сетях, - это те, которые не разделяются и не размещают интерфейсный модуль. каждый компьютер.

Оказывается, когда вы разрабатываете свои приложения таким образом, когда вы меняете свою внутреннюю часть на SQL-сервер, вы обнаруживаете, что этот подход требует очень мало работы, необходимой для того, чтобы ваш интерфейс доступа отлично работал с серверной частью SQL-сервера.

На последний подсчет Я думаю, что это приблизительная оценка около 100 миллионов пользователей доступа по всему миру. Access, безусловно, является самым популярным ядром баз данных для настольных компьютеров, и по большей части пользователи находят, что они работают без проблем.

Единственные люди, у которых есть проблемы с работой в сетях, - это те, которые не разделяются и не размещают интерфейсный модуль. каждый компьютер.

Оказывается, когда вы разрабатываете свои приложения таким образом, когда вы меняете свою внутреннюю часть на SQL-сервер, вы обнаруживаете, что этот подход приводит к очень небольшому количеству работы, необходимой для того, чтобы ваш интерфейс доступа отлично работал с серверной частью SQL-сервера.

На Последний подсчет Я думаю, что это оценка около 100 миллионов пользователей доступа по всему миру. Access, безусловно, является самым популярным ядром баз данных для настольных компьютеров, и по большей части пользователи находят, что они работают без проблем.

Единственные люди, у которых есть проблемы с работой в сетях, - это те, которые не разделяются и не размещают интерфейсный модуль. каждый компьютер.

По последним подсчетам, я думаю, что здесь около 100 миллионов пользователей доступа по всему миру. Access, безусловно, является самым популярным ядром баз данных для настольных компьютеров, и по большей части пользователи находят, что они работают без проблем.

Единственные люди, у которых есть проблемы с работой в сетях, - это те, которые не разделяются и не размещают интерфейсный модуль. каждый компьютер.

По последним подсчетам, я думаю, что здесь около 100 миллионов пользователей доступа по всему миру. Access, безусловно, является самым популярным ядром баз данных для настольных компьютеров, и по большей части пользователи находят, что они работают без проблем.

Единственные люди, у которых есть проблемы с работой в сетях, - это те, которые не разделяются и не размещают интерфейсный модуль. каждый компьютер.

6
ответ дан 14 December 2019 в 08:58
поделиться

Очень хороший код (завернутый в транзакции с откатами), у нас был колл-центр с более чем 100 очень активными пользователями одновременно, еще в Access 97 дней. . Еще один с интерфейсом VB 5, Access Jet на портативных устройствах, которые используют удаленный доступ (да, в старые времена коммутируемого доступа) к базе данных SQL Server 6 - 250 одновременных пользователей.

Люди, использующие мастер для непосредственного связывания формы с таблицей, в которой форма используется для редактирования ... могут быть проблемой.

1
ответ дан 14 December 2019 в 08:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: