在两种相关技术的背景下,“原生”意味着什么?

时间:2009-04-29 09:13:56

标签: language-agnostic ms-access native dao jet

有问题的情景涉及备受诟病的Microsoft Jet database engine。断言是Data Access Objects(DAO)数据访问技术是Jet的“原生”,这意味着通过DAO模型创建对象比通过从内部执行的SQL代码执行相同操作更“优越”。 Microsoft Access用户界面。

此外,据称如果你不能通过DAO创建一些东西,那么根据定义它不是Jet的“原生”。

对我而言,这种“本土”的定义似乎是错误的。出于历史和Microsoft政治原因,有许多Jet对象在DAO(CHECK约束,固定宽度数据类型,DECIMAL数据类型,可压缩数据中被省略或仅部分实现类型等)但包含在Jet的SQL data definition language(DDL)中。直觉本身告诉我,Jet SQL DDL应被视为Jet引擎的“原生”。

所以我的问题是:为什么看似外部的技术(DAO)被认为是“原生的”而另一种看似内部的技术(SQL DDL)被认为是“非本地的”?我是否应该为某些事情是“本土的”还是其他事而烦恼?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

也许我在这里错了,但我总是这样理解:

  • MS Jet数据库引擎无论如何都是数据库引擎(动力不足或不足)
  • 它与外界的“本地”界面是一种SQL方言

,而:

  • DAO是Microsoft的数据库抽象层之一,专为在VBA或Windows脚本等COM环境中使用而设计
  • 它是用Access开发的(可以看作MS Jet的用户界面/报告工具,因为MS Jet可以在没有MS Access的情况下存在),并且与MS Jet和MS Access紧密捆绑在一起,但它是在与ADO相同的类别中