2010-03-23 2 views
9

Мне было поручено перенести существующее приложение MS Access (mdb) на проект данных доступа (adp). В основном формы доступа будут оставаться теми же, но данные будут перенесены на SQL Server.Проект «Данные о преимуществах и недостатках доступа» (внешний интерфейс MS Access с SQL Server Backend)

Я не слишком хорошо знакомы с проектами доступа к данным (АДФ), поэтому я надеялся, что я мог бы получить некоторые мнения о преимуществах и недостатках использования АДФ или любых alternativs как

  • преобразовать это веб-приложение
  • или даже применение Winform,
  • однако я действительно хотел, чтобы выполнить из-за Dilligence глядя на доступ Проекты данных

до принятия решения.

Спасибо за любую помощь.

+0

У вас есть 3 вопроса здесь. 1) ADP vs MDB/ACCDB Frontend 2) SQL vs MDB/ACCDB Backend 3) .Net vs Access. Если вы уточните, какие из них вы просите, тогда вы, вероятно, получите более точные ответы. Очевидно, что ADP может использоваться только с SQL Backend. – Caltor

+10

Для всех, кто сталкивается с этим вопросом, обратите внимание на то, что «Access 2013 не включает поддержку проектов доступа к данным (ADP)». Ссылка: http://msdn.microsoft.com/en-us/library/office/jj618413.aspx – Mike

+1

Это [примечание по поводу прекращенных функций и измененных функций в Access 2013] (https://support.office.com/ru -us/статьи/прекращенная-функция-и модифицированная функциональность в-Access-2013-bc006fc3-5b48-499e-8c7d-9a2dfef68e2f? CorrelationId = c1898d9e-af69-4587-9cc0-6357c083141f & Ui = EN-US и Rs = EN-US и объявление = США) может быть полезным. – surfmuggle

ответ

9

Основное преимущество (s) из проекта Data Access является то, что (а) вы получаете стабильность, масштабируемость и безопасность базы данных реального SQL, а (б) по-прежнему с использованием хорошо известного MS Access front-end и программирование.

(a) Как я уверен, вы знаете, что доступ к файлам MDB демонстрирует множество проблем при совместном использовании несколькими пользователями одновременно или при слишком большом увеличении - это ограничения, которые SQL Server делает Не знаю. Помимо этого, вы можете защитить свои данные и более легко предотвратить повреждение или потерю на SQL Server.

(b) Если у вас уже есть интерфейс, основанный на MS Access, довольно легко позволить программе загрузить ваши данные на сервер. Конечные пользователи продолжают использовать тот же интерфейс, что и раньше, - они не отличаются от них (за исключением, возможно, того, что это быстрее!). И это не требует много времени, начиная программу с нуля на языке .NET (не говоря уже о распространении/установке нового приложения во всех ваших клиентских системах).

Есть ли недостатки? Ну, может быть, пара: (1) Клиенты по-прежнему нуждаются в Runtime доступа для использования программного обеспечения и должны также иметь сетевой доступ к SQL Server. (2) Автоматическое преобразование не является 100% - при запуске мастера для загрузки данных из Access он сделает все возможное, чтобы преобразовать SQL-запросы, связанные с Access, в SQL Server/T-SQL; если некоторые запросы завершатся после преобразования, вам, вероятно, потребуется переписать их с правильным синтаксисом T-SQL.

+4

Основным преимуществом ADP является то, что вы можете управлять своим SQL Server из ADP. Все преимущества upsize для SQL Server могут быть связаны с MDB/ACCDB, связанными с SQL Server через ODBC. –

+0

Можете ли вы объяснить больше, Дэвид? Я никогда не мог понять, как ADP отличается от интерфейса MDB до связанных таблиц, за исключением того, что ADP использует собственное подключение к SQL Server [только], а не дополнительную абстракцию ODBC. – ewall

+1

ADP не используют Jet, поэтому единственным источником данных, который они могут использовать, является SQL Server, поэтому нет локального хранилища (хотя вы можете использовать ADO для записи XML-файлов). ADP зависят от ADO для взаимодействия с SQL Server, и это уровень между Access и SQL Server. Есть еще один слой, но я забыл детали. Короче говоря, в ADP имеется столько слоев абстракции, сколько с MDB/ODBC. И ADO может быть довольно проблематичным, например, пытаться обеспечить ограничения безопасности для базовых таблиц с представлениями. ADO может попытаться обойти представление и перейти непосредственно к таблицам, что приведет к ошибкам. –

14

Нет никакой причины переносить существующее рабочее приложение Access на передний конец ADP. Просто увеличьте свои данные и используйте связанные таблицы ODBC вместо связанных таблиц, которые использовались для связи с вашим задним концом Jet/ACE.

Если, несмотря на это, вы решили подключиться к ADP, имейте в виду, что Microsoft уже несколько лет осуждает ADP, и неясно, есть ли у ADP будущее или нет. A2007 не улучшал ADP, и я считаю, что A2010 тоже не будет. Есть некоторые разговоры о том, что команда разработчиков Access хочет возродить ADP в версии после A2010, но в основном это предположение, основанное на том, что команда запрашивает комментарии пользователей SQL Server о том, как Access можно улучшить для работы с ним в будущих версиях.

+0

ADP в десять раз быстрее, чем у Jet. –

+6

+1 при условии, что поддержка ADP была ** ПОЛНОСТЬЮ УДАЛЕНА ** из Access 2013 –

4

Предполагаю, что вы используете Access 2007.Если вы находитесь, есть два варианта при перемещении данных на SQL-сервер:

A) Преобразование в adp Для преобразования в ADP необходимо изменить код DAO на код ADO, что является другим, библиотека. В зависимости от объема кода, который у вас есть в вашем приложении, это может быть большой проблемой само по себе.

Более важные, однако, проблемы с некоторыми новыми функциями Access 2007, которые НЕ являются AVAILBALE при использовании ADP. Microsoft уже заявила, что это не улучшится с Access 2010. (Пример - это новый элемент управления ControlSource-Property для Image-Controls. Он будет в ADP, но он не работает!) Если вы хотите использовать их, перейдите к B)

B) конвертировать в accdb со связанными таблицами Это позволит вам оставаться с DAO, конвертация в основном автоматическая и предоставит вам почти все функции. Некоторые сложные запросы могут по-прежнему нуждаться в исправлении, поскольку Access не может получить одну и ту же подробную информацию о ваших таблицах/запросах, когда они находятся на SQLServer.

Единственная новость, о которой вам, возможно, придется беспокоиться, и только если вы распространяете приложение для конечных пользователей, это соединения, не связанные с DSN, или связанные с DSN-таблицы, поскольку создание ODBC-DSN для каждого конечного пользователя -машин требует прав администратора. Но есть множество примеров для этого в сети.

+3

Код для преобразования строк подключения DSN к DSN-less приведен здесь: http://www.accessmvp.com/DJSteele/DSNLessLinks.html. –

1

Я использую adps в течение многих лет с большой эффективностью. Как уже говорилось ранее, клиентские компьютеры требуют MS Access или бесплатное программное обеспечение MS Access Runtime для их запуска. ADP должны использовать SQL Server в качестве бэкэнд. Если они написаны хорошо, ADP - очень высокие исполнители, но чтобы писать хорошо, есть значительная часть кодирования. Агенты без учета состояния, то есть, используя, главным образом, несвязанные формы, являются ключевым атрибутом более быстрого исполнителя. Это означает, что требуется много кодирования для передачи параметров на бэкэнд через соединения ADO. Также важно закрыть неиспользуемые соединения ADO. Для транзакций попытайтесь передать параметры в хранимые процедуры в базе данных SQL Server. Вам также нужно будет скомпилировать эти приложения ADP в файлы ADE перед распространением по соображениям безопасности и размера файла. По правде говоря, я должен был потратить время на изучение ASP.NET!

+0

Я начал свой 20-летний (до сих пор) карьерный конфликт с развитием. Доступ к базам данных еще в 1998 году. У вас еще много времени для изучения .NET, и спрос в отрасли достаточно высок для разработчиков в стеке MS.(Только понял, что этот ответ 6 лет ... надеюсь, вы уже освоили .NET!) –

1

Я использую ADP в течение 10 лет с момента выхода Access 2003 с SQL2000 и продолжаю использовать ADP с Access 2007 и SQL2005, а мой последний проект тестируется с Access 2010 на SQL2008R2. Я твердо убежден в том, что ADP предлагает превосходный развивающийся опыт работы над MDB/ODBC тем, что вы можете жить в Access для всех аспектов цикла разработки. Необходимость использования или доступа к SQL Management Studio не требуется 99,9%. Я лично только позволю своим администраторам доступа к инструментам управления SQL Server и ограничил разработчиков ADP только созданием соединения с базой данных.

На основании того, что ADP требует правильного сочетания версий, в противном случае возникнут странные результаты. Например, Access 2007 ADP с SQL2008R2 никогда не был на 100% стабильным для меня. Когда Access 2007 вышел, было сложно преодолеть многие проблемы с использованием ADP на SQL2000. Поиск правильной комбинации кажется слишком стабилизированным и решает большинство моих проблем.

Я считаю, что Access ADP должен быть восстановлен Microsoft, поскольку он оказался очень мощной и стабильной платформой для разработки, и было бы позором потерять.

Я предпринял несколько попыток перенести свои приложения на vb.net с плохими результатами, хотя я приближаюсь. Кривая обучения и время разработки моего набора навыков (программист с самообучением с 20-летним опытом) были очень трудными для меня отказаться от Access ADP, но я много раз пытался испугаться, что ADP в конечном итоге исчезнет. Когда это произойдет, я полностью откажусь от доступа.

+0

Я полностью откажусь от доступа, если они откажутся от ADP. Я просто не могу выдержать строки управления WS Jet на сотнях разных объектов (таблицы, формы, запросы и т. Д.). –

4

Я знаю огромную причину, чтобы не создавать новый проект данных Access.Процитировать Microsoft: «Access 2013 не включает поддержку проектов доступа к данным (ADP)». Поэтому в будущем, когда ваши клиенты будут обновлять Office, они окажутся абсолютно неспособными использовать их внешнее программное обеспечение. См. http://msdn.microsoft.com/en-us/library/office/jj618413%28v=office.15%29.aspx.

Если вы хотите поместить свои исходные данные в SQL Server и по-прежнему использовать Access для внешнего интерфейса, вы можете сделать это с помощью соединения ODBC и связанных таблиц. На следующем веб-сайте: «Access 2013 продолжает поддерживать создание настольных баз данных в формате файла .accdb. Вы можете конвертировать ваше приложение в формат .accdb, включая все ваши существующие формы и отчеты, и оставить данные на SQL Server. может связываться с базой данных SQL Server с помощью связанных таблиц, и ваше приложение будет продолжать работать против одних и тех же данных ».

0

Я использовал Access 2013 вместе с набором записей ADO для формирования и подчинения и сквозного запроса для отчета и подзаголовка, подключенного к SQL Server 2000, 2012 и 2014 годам. Его работы прекрасны и не так много кода за формами и отчетами которые имеют Me.InputParameters и другие, которые мы знаем из диалогового окна свойств формы/отчета ADP. Связанные таблицы не очень хороши, когда мои таблицы похожи на 100 000 строк, и у меня всегда есть критерии, добавленные в мои хранимые процедуры, так что только несколько строк отправляются с сервера на клиент. Я испугался Access-запроса в связанных таблицах, потому что, как я могу быть уверенным, что все данные из таблиц в соединении не отправляются с сервера на клиент, но с набором записей ADO и сквозным запросом я знаю, что этого никогда не произойдет, поэтому мне все равно нравится делать заявку в Access 2013 :)

 Смежные вопросы

  • Нет связанных вопросов^_^