解决方案 »
- 复制picturebox
- C# 正则表达式回溯
- 如何调用QQ相册里的图片
- 科技服务于生活,那么我们还缺点什么?
- 急 如何用C#遍历一个XML文件,并且一边遍历一边把遍历的结果写到另一个XML文件,最后另一个XML和此XML是一样的
- 兄弟们都用的什么笔记本,什么样的配置啊?
- C#里,如何把数据库里的动态数据用饼图,柱形图,曲线图显示出来??
- 象ComboBox一样的文本框那里找?
- 关于 smtp服务器的问题,请高手指教!!!
- 在SQL语言“String strSQLcheck="select 模块名称 from 产品模块 where 产品ID=i";”中为什么说找不到i列
- C#中怎么将listbox中的内容多选,添加到另一个listbox中
- BinaryFormatter序列化和反序列化的时候有时候出错
不用DAO,如何在access中创建和删除表,就连SQLDMO也是COM组件吧
ADO 和 Jet 的 OLE DB 提供程序的有限的功能
Jet 3.51 的 OLE DB 提供程序是一个有限的提供程序。这被为了提供线程安全的方法与 Microsoft 的 Internet 信息服务器使用 Microsoft Jet。有关本主题的详细信息,请参阅 Microsoft 知识库中下面的文章:
222135 (http://support.microsoft.com/kb/222135/EN-US/ ) 信息: 用 IIS 使用 Microsoft Jet
它不公开 Microsoft Jet 数据库引擎的完整功能。它提供了能够打开表、 非参数化的查询和参数化或非参数化的 SELECT 语句对记录集。它还允许 SQL 命令,但不是存储的 Microsoft Jet 操作查询的执行。它不允许对 ISAM 数据源的访问。Jet 4.0 的 OLE DB 提供程序公开的大多数 Microsoft Jet 功能,但它不是所有。除了在 ADO 类库必须 ADOX 和 Jet 和同步复制对象的类型库,以利用外部核心功能 ADO 对象到项目中包含的引用。这主要是落在处理特定于访问的对象和任意位置的一些其他问题所述的类别。 DAO 的有限的功能
DAO 3.51 不能使用 Microsoft Jet 4.0 数据库引擎中,但它确实有 Microsoft Jet 3.51 数据库引擎进行完全的控制。
DAO 3.6 提供控制 Microsoft Jet 4.0,DAO 3.51 级别,但不公开提供 Microsoft Jet 4.0 的任何新功能。性能
DAO 可以更有效地使用到 Microsoft Jet 数据库引擎比 ADO 和 DAO 有时达 5 个或更快 10 倍地,如使用批更新下的速度更快很多操作。另一个问题是检索架构信息进行该调用是对 Jet 应用时,效率很低。这会导致查询,并使用大量正在比等效使用 DAO 的查询慢 30%到 80%的列对表更新。效率低下的 Jet 通过 ADO 的使用情况的一个示例所示连接问题在下一节。 连接问题
Microsoft Jet 可以驻留在同一进程内的多个独立会话。每个会话具有开销,而且在单独的读缓存。在 DAO 中的会话由 DBEngine 对象表示。默认状态下,所有您创建的 DAO 对象,并在 Visual Basic 中的所有 DAO 数据控件使用相同的 Jet 会话。OLE DB 中 Jet 会话由数据源对象表示。多个连接可以对单个数据源对象将其打开。在 ADO 中,某种程度上简化 OLE DB 对象模型是: 一个 ADO 连接对象的 OLE DB 数据源对象和 OLE DB 连接对象组成。这意味着,在 ADO 中、 每个连接对象和 ADO 数据控件使用单独的 Jet 会话。ado 从 DAO 迁移您的应用程序时,这有重要的后果。第一次,Microsoft Jet 可以只处理有限的数量的会话。如果您的应用程序使用大量的 ADO 数据控件,Jet 可能会耗尽资源。此外,Jet 的读取缓冲区都有一个五秒钟超时,因此在一个连接上所做的更改将不会显示在另一台五秒钟。在 DAO 中,这不是问题,因为所有对象都使用相同的缓冲区。下面的知识库文章提供了有关此主题和如何共享以消除由多个 Jet 会话引起该问题的数据控件之间的连接的详细信息:
216925 (http://support.microsoft.com/kb/216925/EN-US/ ) ADO 和 Jet PRB: 单用户并发问题
提高并发性的第二种方法是使用 RefreshCache JetEngine 对象的方法。此对象通过 Microsoft Jet 和复制对象 2.1 库公开,可用开头 ADO 2.1 Sp1 GA.ADO 是从:http://msdn.microsoft.com/en-us/data/aa937729.aspx (http://msdn.microsoft.com/en-us/data/aa937729.aspx) 重新分发
在使用 DAO 时您将有很多较少的文件,您必须安装在客户端计算机上。Visual Basic 设置向导 (Visual Basic 5.0 及更早版本) 或打包和部署向导 (Visual Basic 6.0 中) 为您处理此。使用 ADO,您可以重新发布的所有 ADO 和 OLE DB,包括 ODBC,和 Microsoft Jet 以外的其他某些默认驱动程序。 access 2000 和旧应用程序兼容性
有三个主要的兼容性问题:
第一个是使用 Access 95 和 Access 97 和 Visual Basic 4.0 等的旧版应用程序的 Jet 4.0 数据库格式表示 5.0,6.0 使用 DAO 的数据控件的应用程序的和所有硬编码到使用 Jet 3.x 数据库格式将不能读取 Jet 4.0 数据。
第二个问题是由 ADO 创建的存储的查询是不可见为 Access 2000。其原因是 Jet 4.0 查询处理器,以使其更多的 ANSI 兼容,包括添加新的 SQL 命令中的更改。access 2000 不会甚至显示这些查询以避免令人困惑的用户。但是,他们可以看到和执行通过 DAO 和 ADO。它们还能通过引用在窗体和报表记录源属性和 SQL 语句中,您将不得不手动键入该名称中的,在该生成器将不会显示名称。Microsoft OLE DB 提供程序的 Jet 4.0 始终设置为非 NULL 值的 ANSI 标志。DAO 始终将此标志设置为 NULL。
第三个问题是 Jet 4.0 除去对 FoxPro IISAM 的支持。必须通过 FoxPro ODBC 驱动程序访问任何 FoxPro 表。如果 Jet 数据库使用链接的 FoxPro 表,并且您将转换为 Jet 4.0 必须重新链接它们而是使用 FoxPro ODBC 驱动程序。