Лучше использовать ADO или ДАО в Доступе 2007?

Вы можете дать команде printf команду find try

% Последнее время доступа к файлу Ak в формате, заданном параметром k, который является либо функцией @' or a directive for the C strftime '. Возможные значения для k перечислены ниже; некоторые из них могут быть доступны не во всех системах из-за различий в strftime между системами.

20
задан Smandoli 18 November 2013 в 20:13
поделиться

6 ответов

[For the record, the official name for what once was 'Jet' is now the 'Access database engine'.]

For ACE (the Access2007 engine .accdb format) features it has to be ACEDAO.

For Jet 4.0 features it has to be ADO classic.

For Jet 3.51 features and earlier, pick either ADO or DAO. There are advantages and disadvantages to both. The vast majority of Access database engine functionality is common to both; the mutually exclusive functionality is arguable fringe. A lifestyle choice, perhaps, but no big deal. The smart coder uses the best of both :)

I've used both quite a bit and ADO is my personal preference. It is more modern than DAO, so architecturally it is an improvement: flatter object model, none of the tear down problems of DAO, etc. More properties and methods and introduces events (DAO has none) e.g. for asynchronous connection and fetching of records. ADO recordsets can be disconnected, hierarchical and fabricated, DAO recordsets cannot. Basically, they took the good things about DAO and made them better.

DAO is not without its strong points. For one, you will find more DAO code examples than ADO for Access/Jet.

P.S. for some reason, folk who like DAO really dislike ADO. Ignore the propaganda. ADO isn't deprecated. The ACE has an OLE DB provider and is currently the only way of using ACE in 64 bit. ADO.NET hasn't replaced ADO classic any more than VB.NET has replaced VBA6 in Access projects.

EDIT: just to clarify, "For Jet 4.0 features it has to be ADO classic," this is because DAO 3.6 only received a few enhancements for the features new to Jet 4.0. For example, for the DECIMAL data type you cannot specify scale/precision. Other features are missing completely from DAO. For example, can you do the following in Jet 4.0 using DAO (or ACEDAO in ACE for that matter)?

CREATE TABLE Test (
   col1 CHAR(4) WITH COMPRESSION DEFAULT '0000' NOT NULL, 
   CHECK (NOT EXISTS (
                      SELECT T1.col1 
                        FROM Test AS T1 
                        WHERE T1.col1 <> '0000' 
                        GROUP 
                           BY T1.col1 
                       HAVING COUNT(*) > 1
                      ))
);

(hint: compressible fixed-width text column with table-level data integrity constraint.) No, you cannot.

AFAIK the only enhancements to ACEDAO was for the new ACE functionality i.e. they didn't go back and fill in the Jet 4.0 gaps in DAO. And why should they? We still have ADO to plug the gaps. Better that the team spent their time more productively, like fixing that annoying DECIMAL sort bug, for me the best thing about ACE ;-)

15
ответ дан 30 November 2019 в 00:31
поделиться

Это зависит от ваших потребностей. Ни один из этих инструментов не исчезнет в ближайшее время.

Если у вас нет опыта работы ни с ADO, ни с DAO, вы обнаружите, что DAO намного проще. Поэтому, если вам не нужен ADO, используйте DAO.

Вы добавили этот важный элемент: «Я пытаюсь загрузить данные из внешнего источника в базу данных Access». Для этого подключения может потребоваться ADO.

2
ответ дан 30 November 2019 в 00:31
поделиться

DAO - это рекомендуемая технология. ADO сильно обесценилась и теперь заменяется ADO.net.

DAO не только является собственной и рекомендованной объектной моделью данных для использования доступа MS, но и продолжает улучшаться, и теперь в ней есть целый ряд новых функций для sharepoint. В Access 2007 теперь есть поддержка списков SharePoint. Это означает, что новая объектная модель DAO для 2007 позволяет использовать список sharepoint и рассматривать его как таблицу сервера SQL. Это означает, что вы можете использовать SQL в списках sharepoint (на самом деле нет даже поставщика oleDB, который позволяет вам использовать списки SharePoint таким образом, но с DAO теперь вы можете это сделать). Ничего подобного в ADO не было. Таким образом, списки SharePoint с точки зрения доступа (dao) рассматривают эти списки SharePoint как стандартную таблицу.

Кроме того, доступный DAO также поддерживает то, что мы называем сложными типами данных. Это было сделано для поддержки списков XML от sharepoint. Имейте в виду, что в следующей версии доступа (2010) мы увидим еще множество новых дополнительных функций, добавляемых в DAO (JET теперь называется ACE).

Нет сомнений в том, что DAO - правильная и хорошая модель для использования. ADO больше не получает никаких улучшений и была заменена ADO.NET.

Таким образом, будущее принадлежит DAO, и ясно, что Microsoft вкладывает свои деньги в отношении доступа к MS и условий обновления Access для работы с вещи sharepoint.

Access 2007 получил многозначные возможности для определений полей, и снова это стало результатом усовершенствований для поддержки sharepoint. Тем не мение, эти функции являются частью JET, и эти улучшения можно использовать без sharepoint. теперь они являются частью DAO.


edit: Возможно, я собираюсь немного расширить это и попытаться прояснить, какие у нас здесь такие противоположные ответы, я могу заверить вас, что при использовании Access 2007 вам гораздо лучше использовать DAO.

Где Путаница возникает из-за того, что если вы посмотрите на ссылки на инструменты, когда вы решите использовать доступ к модели объекта данных по умолчанию 2007, проблема здесь в том, что он больше не называется DAO. Теперь он называется ACE.

Когда вы используете DAO в Access 2007, вы заметите в справочниках по инструментам, что ссылка не установлена ​​на DAO 3.6 (эта версия устарела, а также больше не является частью загрузки MDAC. ). Вы заметите, что новая ссылка при использовании DAO в ms-доступе называется:

Библиотека объектов движка базы данных доступа Microsoft Office 12.0

. но приведенное выше верно для справочного доступа 2007, когда вы собираетесь использовать DAO вместо ADO.

Другими словами, возможно, нам следует называть это DAO II.

Другими словами, этот механизм данных продолжает работать будут улучшены, и наверняка увидит 64-битную версию этого движка для офиса 2010 (офис 14).

Таким образом, вопрос или путаница сводится к тому, какой термин мы собираемся использовать, когда мы говорим об использовании DAO в Access 2007. Путаница здесь заключается в том, что документация и даже справочные материалы по инструментам не называют это DAO.

В конце концов, в Access 2007, если вы планируете использовать DAO, это означает, что вы устанавливаете указанную выше ссылку и не устанавливаете ссылку на DAO 3.6. Тем не менее, нет никакого смысла начинать использовать ADO сейчас, когда он обесценился, и новая объектная модель доступа DAO продолжает совершенствоваться и внедряться Microsoft.

Я надеюсь, что это поможет прояснить здесь запутанную ситуацию. Хотя DAO / JET обесценивается, новая версия Access 2007 основана на той же кодовой базе, за исключением того, что она продолжает улучшаться. Таким образом, новый механизм доступа к данным можно рассматривать и называть новой объектной моделью DAO.

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

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

Я надеюсь, что это поможет прояснить здесь путаницу. Хотя DAO / JET обесценивается, новая версия Access 2007 основана на той же кодовой базе, за исключением того, что она продолжает улучшаться. Таким образом, новый механизм доступа к данным можно рассматривать и называть новой объектной моделью DAO.

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

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

Я надеюсь, что это поможет прояснить здесь путаницу. Хотя DAO / JET обесценивается, новая версия Access 2007 основана на той же кодовой базе, за исключением того, что она продолжает улучшаться. Таким образом, новый механизм доступа к данным можно рассматривать и называть новой объектной моделью DAO.

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

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

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

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

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

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

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

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

8
ответ дан 30 November 2019 в 00:31
поделиться

ADO - это текущий рекомендуемый метод доступа. Я думаю, что DAO устарел уже довольно много лет.

Похоже, что это было с Access 2000 - согласно эта ссылка ,

Список устаревших технологий доступа к данным - http: //msdn.microsoft.com/en-us/library/ms810810.aspx#mdac дорожная карта технологий old_topic9

Цитата из приведенной выше статьи, которая была пересмотрена в декабре 2008 г. - «Объекты доступа к данным (DAO): DAO обеспечивает доступ к базам данных JET (Access). Этот API можно использовать из Microsoft Visual Basic, Microsoft Visual C ++ и языков сценариев. Он был включен в Microsoft Office 2000 и Office XP. DAO 3.6 является последней версией этой технологии. Он будет недоступно в 64-битной операционной системе Windows »

2
ответ дан 30 November 2019 в 00:31
поделиться

Ответ на вопрос зависит от того, что вы делаете. Если вы используете Access для работы с данными в формате, интерфейс ADO которого более универсален, используйте ADO. Если вы используете данные Jet или ядро ​​базы данных Jet для работы с другим ядром базы данных (через ODBC), то DAO - правильный выбор.

Но этот ответ предполагает, что вы работаете из Access. Если вы работаете в другой среде программирования, ответы, скорее всего, будут совершенно другими.

3
ответ дан 30 November 2019 в 00:31
поделиться

DAO просто потрясающе с точки зрения производительности по сравнению с ADO. Нет никакого сравнения.

1
ответ дан 30 November 2019 в 00:31
поделиться
Другие вопросы по тегам:

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