2010-06-11 2 views
4

У меня есть проект, который будет использовать Access 2003 в качестве front-end, и данные будут храниться в SQL Server. Доступ будет подключаться к SQL Server через связанные таблицы со всей логикой базы данных (хранимые процедуры, представления) в SQL Server.Доступ как интерфейс для SQL Server - ADO против DAO?

Учитывая эту настройку, было бы лучше использовать ADO или DAO в Access? Это просто вопрос предпочтения или еще один подходит для Access как интерфейсного и SQL Server в качестве хранилища данных? Особенно при использовании связанных таблиц. Благодарю.

ответ

2

Пишите pass-thru запросы в отличие от подхода, связанного с таблицей. Производительность будет значительно улучшена. Написание приложения для доступа?

Создайте несколько локальных таблиц для хранения некоторых результатов запроса. Вы можете динамически изменять запросы pass-thru по мере необходимости, а также информацию о подключении для подключения к нескольким базам данных.

Редактировать: Общий консенсус - это ADO для подключения к серверу sql/другим источникам и DAO для источников только mdb.

+1

Проходные запросы могут использоваться со связанными таблицами, они не являются взаимоисключающими. – webworm

+0

@webworm, производительность - проблема, а не совместимость. Лучше делать запросы как можно более ограниченного количества данных, а не всей таблицы. – JeffO

+1

Связанные таблицы и сквозные запросы не являются взаимоисключающими. Используйте связанные таблицы, где разумно, и используйте другие методы, когда это требует. Тогда вы получаете лучшее из обоих миров. Также обычно не требуются локальные таблицы SQL Server. –

-1

DAO использовался для доступа к базам данных MDB из любого COM-приложения. Я не думаю, что он может даже подключиться к SQL Server.

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

+0

Этот ответ неверен в отношении фактов о DAO и ADO. ADO является * не * наследником DAO, а преемником ODBC. MS вытолкнула ADO в период времени A2000, чтобы отбросить механизм ADO и Jet, но это не удалось (по очень очевидным причинам - это была кровавая глупая идея).Классический ADO мертв, будучи замененным ADO.NET, который, несмотря на несущественные сходства с классическим ADO, является совершенно другим животным. DAO - это интерфейс к движку базы данных Jet/ACE, через который вы можете получить доступ практически к любому хранилищу данных на планете. –

+0

@ David-W-Fenton: Насколько я знаю, преемником ODBC был OLE DB. ADO была оболочкой COM вокруг OLE DB. Отброс двигателя Jet был очень хорошей идеей: двигатель Jet был эффективен, но неправильно ответил на многие запросы – Andomar

+0

Но MS изменила свое сознание и пошла полным ходом в дальнейшее стремление двигателя базы данных Jet, начиная с Access 2007. Это было * никогда * хорошие идеи для Access, хотя, конечно, Jet совсем не вписывался в .NET-инструменты разработки .NET. Любой, кто утверждает MS, устарел от Jet с Access, читает статьи в КБ, применяя к большому семейству средств разработки MS, и неверно применяет их рекомендации для Access, где Jet/ACE - это что-то, но не рекомендуется, - оно улучшается и продвигается в значительной степени. –

2

Используйте MDB с связанными таблицами ODBC. Поскольку вы используете ODBC, вы подключаетесь через Jet, поэтому очевидно, что DAO является выбором по умолчанию для доступа к данным.

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

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

+0

-1 Передняя часть доступа к SQL Server не является файлом MDB (это файл ADP) – Andomar

+2

Er, что? Пожалуйста, отмените downvote, так как вы просто ошибаетесь. MDB как интерфейс SQL Server через ODBC - это рекомендуемая конфигурация MS. MS уже почти пять лет отказывается от ADP с SQL Server в пользу MDB. Первоначальный вопрос задает вопрос о DAO, и это показывает, что ADP не рассматривается в первую очередь, поскольку DAO не работает в ADP, поскольку в нем нет Jet. –

+0

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

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