Microsoft OLE DB Provider for Microsoft Jet 概述

OLE DB Provider for Microsoft Jet 支持 ADO 访问 Microsoft Jet 数据库。

连接字符串参数

若要连接到此提供程序,请将 ConnectionString 属性的 Provider 参数设置为以下属性:

Microsoft.Jet.OLEDB.4.0

读取 Provider 属性也会返回此字符串。

常见连接字符串

此提供程序的一个典型连接字符串为:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=databaseName;User ID=MyUserID;Password=MyPassword;"

该字符串由以下关键字组成:

关键字 说明
提供程序 指定 OLE DB Provider for Microsoft Jet。
数据源 指定数据库路径和文件名(例如 c:\Northwind.mdb)。
用户 ID 指定用户名。 如果未指定此关键字,默认情况下使用字符串“admin”。
密码 指定用户密码。 如果未指定此关键字,默认情况下使用空字符串 ("")。

注意

如果要连接到支持 Windows 身份验证的数据源提供程序,则应指定 Trusted_Connection=yes 或 Integrated Security = SSPI,而不是连接字符串中的用户 ID 和密码信息。

提供程序特定的连接参数

除了支持 ADO 定义的那些属性以外,OLE DB Provider for Microsoft Jet 还支持几个提供程序特定的动态属性。 与所有其他的 Connection 参数一样,可以使用 Connection 对象的 Properties 集合设置这些动态属性,也可以将这些属性作为连接字符串的一部分。

下表列出了这些属性以及对应的 OLE DB 属性名(括在括号中)。

参数 说明
Jet OLEDB:Compact Reclaimed Space Amount (DBPROP_JETOLEDB_COMPACTFREESPACESIZE) 指示空间量的估计值(以字节为单位),可通过压缩数据库来回收空间。 仅在建立了数据库连接后,此值才有效。
Jet OLEDB:Connection Control (DBPROP_JETOLEDB_CONNECTIONCONTROL) 指示用户是否可以连接到数据库。
Jet OLEDB:Create System Database (DBPROP_JETOLEDB_CREATESYSTEMDATABASE) 指示在创建新的数据源时是否应该创建系统数据库。
Jet OLEDB:Database Locking Mode (DBPROP_JETOLEDB_DATABASELOCKMODE) 指示此数据库的锁定模式。 打开数据库的第一位用户决定数据库打开时使用的模式。
Jet OLEDB:Database Password (DBPROP_JETOLEDB_DATABASEPASSWORD) 指示数据库密码。
Jet OLEDB:Don't Copy Locale on Compact (DBPROP_JETOLEDB_COMPACT_DONTCOPYLOCALE) 指示 Jet 在压缩数据库时是否应复制区域设置信息。
Jet OLEDB:Encrypt Database (DBPROP_JETOLEDB_ENCRYPTDATABASE) 指示是否应该加密压缩的数据库。 如果未设置此属性,将对压缩的数据库进行加密(如果原始数据库也进行了加密)。
Jet OLEDB:Engine Type (DBPROP_JETOLEDB_ENGINE) 指示用于访问当前数据存储的存储引擎。
Jet OLEDB:Exclusive Async Delay (DBPROP_JETOLEDB_EXCLUSIVEASYNCDELAY) 指示 Jet 在以独占方式打开数据库时可延迟异步写入磁盘的最大时间长度(以毫秒为单位)。

除非 Jet OLEDB:Flush Transaction Timeout 设置为 0,否则将忽略此属性。
Jet OLEDB:Flush Transaction Timeout (DBPROP_JETOLEDB_FLUSHTRANSACTIONTIMEOUT) 指示在将缓存中存储的数据(该数据用于异步写入)写入磁盘之前等待的时间。 此设置会替代 Jet OLEDB:Shared Async Delay 和 Jet OLEDB:Exclusive Async Delay 的值。
Jet OLEDB:Global Bulk Transactions (DBPROP_JETOLEDB_GLOBALBULKNOTRANSACTIONS) 指示是否处理 SQL 批量事务。
Jet OLEDB:Global Partial Bulk Ops (DBPROP_JETOLEDB_GLOBALBULKPARTIAL) 指示用于打开数据库的密码。
Jet OLEDB:Implicit Commit Sync (DBPROP_JETOLEDB_IMPLICITCOMMITSYNC) 指示在内部隐式事务中所做的更改是以同步模式还是异步模式写入。
Jet OLEDB:Lock Delay (DBPROP_JETOLEDB_LOCKDELAY) 指示在上一次尝试失败后再尝试获取锁前要等待的毫秒数。
Jet OLEDB:Lock Retry (DBPROP_JETOLEDB_LOCKRETRY) 指示尝试访问锁定页的重复次数。
Jet OLEDB:Max Buffer Size (DBPROP_JETOLEDB_MAXBUFFERSIZE) 指示 Jet 在开始刷新对磁盘的更改前可使用的最大内存量(以千字节为单位)。
Jet OLEDB:Max Locks Per File (DBPROP_JETOLEDB_MAXLOCKSPERFILE) 指示 Jet 可在数据库上放置的最大锁定数。 默认值为 9500。
Jet OLEDB:New Database Password (DBPROP_JETOLEDB_NEWDATABASEPASSWORD) 指示要为此数据库设置的新密码。 旧密码存储在 Jet OLEDB:Database Password 中。
Jet OLEDB:ODBC Command Time Out (DBPROP_JETOLEDB_ODBCCOMMANDTIMEOUT) 指示 Jet 中的远程 ODBC 查询超时前的毫秒数。
Jet OLEDB:Page Locks to Table Lock (DBPROP_JETOLEDB_PAGELOCKSTOTABLELOCK) 指示在 Jet 尝试将锁提升为表锁之前,需要在事务中锁定的页数。 如果此值为 0,则绝不提升锁。
Jet OLEDB:Page Timeout (DBPROP_JETOLEDB_PAGETIMEOUT) 指示 Jet 在检查其缓存是否与数据库文件一起过期前要等待的毫秒数。
Jet OLEDB:Recycle Long-Valued Pages (DBPROP_JETOLEDB_RECYCLELONGVALUEPAGES) 指示 Jet 在释放 BLOB 页面时是否应该积极尝试回收这些页面。
Jet OLEDB:Registry Path (DBPROP_JETOLEDB_REGPATH) 指示 Windows 注册表项,其中包含 Jet 数据库引擎的值。
Jet OLEDB:Reset ISAM Stats (DBPROP_JETOLEDB_RESETISAMSTATS) 指示架构 Recordset DBSCHEMA_JETOLEDB_ISAMSTATS 在返回性能信息后是否应该重置其性能计数器。
Jet OLEDB:Shared Async Delay (DBPROP_JETOLEDB_SHAREDASYNCDELAY) 指示在多用户模式下打开数据库时,Jet 可以延迟异步写入磁盘的最长时间(以毫秒为单位)。
Jet OLEDB:System Database (DBPROP_JETOLEDB_SYSDBPATH) 指示工作组信息文件(系统数据库)的路径和文件名。
Jet OLEDB:Transaction Commit Mode (DBPROP_JETOLEDB_TXNCOMMITMODE) 指示 Jet 在提交事务时是将数据同步还是异步写入磁盘。
Jet OLEDB:User Commit Sync (DBPROP_JETOLEDB_USERCOMMITSYNC) 指示在事务中所做的更改是以同步模式还是异步模式写入。

特定于提供程序的 Recordset 和 Command 属性

Jet 提供程序还支持多个特定于提供程序的 Recordset 和 Command 属性。 这些属性可通过 Recordset 或 Command 对象的 Properties 集合进行访问和设置。 下表列出了 ADO 属性名称及其对应的 OLE DB 属性名(括在括号中)。

属性名称 说明
Jet OLEDB:Bulk Transactions (DBPROP_JETOLEDB_BULKNOTRANSACTIONS) 指示是否处理 SQL 批量操作。 由于资源延迟,大型批量操作可能会在事务处理时失败。
Jet OLEDB:Enable Fat Cursors (DBPROP_JETOLEDB_ENABLEFATCURSOR) 指示在为远程行源填充记录集时,Jet 是否应缓存多行。
Jet OLEDB:Fat Cursor Cache Size (DBPROP_JETOLEDB_FATCURSORMAXROWS) 指示使用远程数据存储行缓存时要缓存的行数。 将忽略此值,除非 Jet OLEDB:Enable Fat Cursors 为 True。
Jet OLEDB:Inconsistent (DBPROP_JETOLEDB_INCONSISTENT) 指示查询结果是否允许不一致的更新。
Jet OLEDB:Locking Granularity (DBPROP_JETOLEDB_LOCKGRANULARITY) 指示是否使用行级锁定打开表。
Jet OLEDB:ODBC Pass-Through Statement (DBPROP_JETOLEDB_ODBCPASSTHROUGH) 指示 Jet 应将 Command 对象中的 SQL 文本原封不动地传递给后端。
Jet OLEDB:Partial Bulk Ops (DBPROP_JETOLEDB_BULKPARTIAL) 指示 SQL DML 操作失败时 Jet 的行为。
Jet OLEDB:Pass Through Query Bulk-Op (DBPROP_JETOLEDB_PASSTHROUGHBULKOP) 指示是否将不返回 Recordset 的查询原封不动地传递给数据源。
Jet OLEDB:Pass Through Query Connect String (DBPROP_JETOLEDB_ODBCPASSTHROUGHCONNECTSTRING) 指示用于连接到远程数据存储的 Jet 连接字符串。 将忽略此值,除非 Jet OLEDB:ODBC Pass-Through Statement 为 True。
Jet OLEDB:Stored Query (DBPROP_JETOLEDB_STOREDQUERY) 指示命令文本是否应解释为存储查询,而不是 SQL 命令。
Jet OLEDB:Validate Rules On Set (DBPROP_JETOLEDB_VALIDATEONSET) 指示在设置列数据或将更改提交到数据库时,是否评估 Jet 验证规则。

默认情况下,OLE DB Provider for Microsoft Jet 在读/写模式下打开 Microsoft Jet 数据库。 若要以只读模式打开数据库,请将 ADO Connection 对象上的 Mode 属性设置为 adModeRead。

Command 对象使用情况

Command 对象中的命令文本使用 Microsoft Jet SQL 方言。 可以在命令文本中指定行返回查询、操作查询和表名;但存储过程不受支持且不应指定。

Recordset 行为

Microsoft Jet 数据库引擎不支持动态游标。 因此,OLE DB Provider for Microsoft Jet 不支持 adLockDynamic 游标类型。 请求动态游标时,提供程序将返回键集游标并重置 CursorType 属性,用于指示返回的 Recordset 的类型。 此外,如果请求可更新的 Recordset(LockType 为 adLockOptimistic、adLockBatchOptimistic 或 adLockPessimistic),提供程序还将返回键集游标并重置 CursorType 属性。

动态属性

OLE DB Provider for Microsoft Jet 将多个动态属性插入到未打开的 ConnectionRecordsetCommand 对象的 Properties 集合中。

下表是每种动态属性的 ADO 和 OLE DB 名称的交叉索引。 OLE DB 程序员参考通过术语“说明”来引用 ADO 属性名。可以在 OLE DB 程序员参考中找到有关这些属性的详细信息。

连接动态属性

以下属性会添加到 Connection 对象的 Properties 集合中。

ADO 属性名称 OLE DB 属性名称
活动会话 DBPROP_ACTIVESESSIONS
异步中止 DBPROP_ASYNCTXNABORT
异步提交 DBPROP_ASYNCTNXCOMMIT
自动提交隔离级别 DBPROP_SESS_AUTOCOMMITISOLEVELS
目录位置 DBPROP_CATALOGLOCATION
目录术语 DBPROP_CATALOGTERM
列定义 DBPROP_COLUMNDEFINITION
当前目录 DBPROP_CURRENTCATALOG
数据源 DBPROP_INIT_DATASOURCE
数据源名称 DBPROP_DATASOURCENAME
数据源对象线程模型 DBPROP_DSOTHREADMODEL
DBMS 名称 DBPROP_DBMSNAME
DBMS 版本 DBPROP_DBMSVER
GROUP BY 支持 DBPROP_GROUPBY
异类表支持 DBPROP_HETEROGENEOUSTABLES
标识符区分大小写 DBPROP_IDENTIFIERCASE
隔离级别 DBPROP_SUPPORTEDTXNISOLEVELS
隔离保留期 DBPROP_SUPPORTEDTXNISORETAIN
区域设置标识符 DBPROP_INIT_LCID
最大索引大小 DBPROP_MAXINDEXSIZE
最大行大小 DBPROP_MAXROWSIZE
最大行大小包括 BLOB DBPROP_MAXROWSIZEINCLUDESBLOB
SELECT 中的最大表数 DBPROP_MAXTABLESINSELECT
模式 DBPROP_INIT_MODE
多个参数集 DBPROP_MULTIPLEPARAMSETS
多个结果 DBPROP_MULTIPLERESULTS
多种存储选项 DBPROP_MULTIPLESTORAGEOBJECTS
多表更新 DBPROP_MULTITABLEUPDATE
NULL 排序规则顺序 DBPROP_NULLCOLLATION
NULL 串联行为 DBPROP_CONCATNULLBEHAVIOR
OLE DB 版本 DBPROP_PROVIDEROLEDBVER
OLE 对象支持 DBPROP_OLEOBJECTS
打开行集支持 DBPROP_OPENROWSETSUPPORT
Select 列表中的 ORDER BY 列 DBPROP_ORDERBYCOLUMNSINSELECT
输出参数可用性 DBPROP_OUTPUTPARAMETERAVAILABILITY
通过 Ref 访问器传递 DBPROP_BYREFACCESSORS
密码 DBPROP_AUTH_PASSWORD
持久性 ID 类型 DBPROP_PERSISTENTIDTYPE
准备中止行为 DBPROP_PREPAREABORTBEHAVIOR
准备提交行为 DBPROP_PREPARECOMMITBEHAVIOR
过程术语 DBPROP_PROCEDURETERM
Prompt DBPROP_INIT_PROMPT
提供程序友好名称 DBPROP_PROVIDERFRIENDLYNAME
Provider Name DBPROP_PROVIDERFILENAME
提供程序版本 DBPROP_PROVIDERVER
只读数据源 DBPROP_DATASOURCEREADONLY
命令上的行集转换 DBPROP_ROWSETCONVERSIONSONCOMMAND
架构术语 DBPROP_SCHEMATERM
架构用法 DBPROP_SCHEMAUSAGE
SQL 支持 DBPROP_SQLSUPPORT
结构化存储 DBPROP_STRUCTUREDSTORAGE
子查询支持 DBPROP_SUBQUERIES
表术语 DBPROP_TABLETERM
事务 DDL DBPROP_SUPPORTEDTXNDDL
用户 ID DBPROP_AUTH_USERID
用户名 DBPROP_USERNAME
窗口句柄 DBPROP_INIT_HWND

记录集动态属性

以下属性会添加到 Recordset 对象的 Properties 集合中。

ADO 属性名称 OLE DB 属性名称
访问顺序 DBPROP_ACCESSORDER
仅追加行集 DBPROP_APPENDONLY
阻止存储对象 DBPROP_BLOCKINGSTORAGEOBJECTS
书签类型 DBPROP_BOOKMARKTYPE
可对其添加书签 DBPROP_IROWSETLOCATE
已排序书签 DBPROP_ORDEREDBOOKMARKS
缓存延迟列 DBPROP_CACHEDEFERRED
更改插入的行 DBPROP_CHANGEINSERTEDROWS
列特权 DBPROP_COLUMNRESTRICT
列集通知 DBPROP_NOTIFYCOLUMNSET
列可写 DBPROP_MAYWRITECOLUMN
延迟列 DBPROP_DEFERRED
延迟存储对象更新 DBPROP_DELAYSTORAGEOBJECTS
向后提取 DBPROP_CANFETCHBACKWARDS
保留行 DBPROP_CANHOLDROWS
IAccessor DBPROP_IAccessor
IColumnsInfo DBPROP_IColumnsInfo
IColumnsRowset DBPROP_IColumnsRowset
IConnectionPointContainer DBPROP_IConnectionPointContainer
IConvertType DBPROP_IConvertType
ILockBytes DBPROP_ILockBytes
固定行 DBPROP_IMMOBILEROWS
IRowset DBPROP_IRowset
IrowsetChange DBPROP_IRowsetChange
IRowsetIdentity DBPROP_IRowsetIdentity
IrowsetIndex DBPROP_IRowsetIndex
IRowsetInfo DBPROP_IRowsetInfo
IrowsetLocate DBPROP_IRowsestLocate
IRowsetResynch
IRowsetScroll DBPROP_IRowsetScroll
IRowsetUpdate DBPROP_IRowsetUpdate
ISequentialStream DBPROP_ISequentialStream
IStorage DBPROP_IStorage
IStream DBPROP_IStream
ISupportErrorInfo DBPROP_ISupportErrorInfo
文本书签 DBPROP_LITERALBOOKMARKS
文本行标识 DBPROP_LITERALIDENTITY
最大打开行数 DBPROP_MAXOPENROWS
最大挂起行数 DBPROP_MAXPENDINGROWS
最大行数 DBPROP_MAXROWS
内存用量 DBPROP_MEMORYUSAGE
通知粒度 DBPROP_NOTIFICATIONGRANULARITY
通知阶段 DBPROP_NOTIFICATIONPHASES
对象事务处理 DBPROP_TRANSACTEDOBJECT
其他人的更改可见 DBPROP_OTHERUPDATEDELETE
其他人的插入可见 DBPROP_OTHERINSERT
自己的更改可见 DBPROP_OWNUPDATEDELETE
自己的插入可见 DBPROP_OWNINSERT
在中止时保留 DBPROP_ABORTPRESERVE
在提交时保留 DBPROP_COMMITPRESERVE
快速重启 DBPROP_QUICKRESTART
可重入事件 DBPROP_REENTRANTEVENTS
删除已删除的行 DBPROP_REMOVEDELETED
报告多个更改 DBPROP_REPORTMULTIPLECHANGES
返回挂起的插入 DBPROP_RETURNPENDINGINSERTS
行删除通知 DBPROP_NOTIFYROWDELETE
行第一个更改通知 DBPROP_NOTIFYROWFIRSTCHANGE
行插入通知 DBPROP_NOTIFYROWINSERT
行特权 DBPROP_ROWRESTRICT
行重新同步通知 DBPROP_NOTIFYROWRESYNCH
行线程处理模型 DBPROP_ROWTHREADMODEL
行撤消更改通知 DBPROP_NOTIFYROWUNDOCHANGE
行撤消删除通知 DBPROP_NOTIFYROWUNDODELETE
行撤消插入通知 DBPROP_NOTIFYROWUNDOINSERT
行更新通知 DBPROP_NOTIFYROWUPDATE
行集提取位置更改通知 DBPROP_NOTIFYROWSETFETCHPOSISIONCHANGE
行集发布通知 DBPROP_NOTIFYROWSETRELEASE
向后滚动 DBPROP_CANSCROLLBACKWARDS
跳过已删除的书签 DBPROP_BOOKMARKSKIPPED
强行标识 DBPROP_STRONGITDENTITY
可更新性 DBPROP_UPDATABILITY
使用书签 DBPROP_BOOKMARKS

Command 动态属性

以下属性会添加到 Command 对象的 Properties 集合中。

ADO 属性名称 OLE DB 属性名称
访问顺序 DBPROP_ACCESSORDER
仅追加行集 DBPROP_APPENDONLY
阻止存储对象 DBPROP_BLOCKINGSTORAGEOBJECTS
书签类型 DBPROP_BOOKMARKTYPE
可对其添加书签 DBPROP_IROWSETLOCATE
更改插入的行 DBPROP_CHANGEINSERTEDROWS
列特权 DBPROP_COLUMNRESTRICT
列集通知 DBPROP_NOTIFYCOLUMNSET
延迟列 DBPROP_DEFERRED
延迟存储对象更新 DBPROP_DELAYSTORAGEOBJECTS
向后提取 DBPROP_CANFETCHBACKWARDS
保留行 DBPROP_CANHOLDROWS
IAccessor DBPROP_IAccessor
IColumnsInfo DBPROP_IColumnsInfo
IColumnsRowset DBPROP_IColumnsRowset
IConnectionPointContainer DBPROP_IConnectionPointContainer
IConvertType DBPROP_IConvertType
ILockBytes DBPROP_ILockBytes
固定行 DBPROP_IMMOBILEROWS
IRowset DBPROP_IRowset
IrowsetChange DBPROP_IRowsetChange
IRowsetIdentity DBPROP_IRowsetIdentity
IrowsetIndex DBPROP_IRowsetIndex
IRowsetInfo DBPROP_IRowsetInfo
IrowsetLocate DBPROP_IRowsetLocate
IRowsetResynch
IRowsetScroll DBPROP_IRowsetScroll
IRowsetUpdate DBPROP_IRowsetUpdate
ISequentialStream DBPROP_ISequentialStream
IStorage DBPROP_IStorage
IStream DBPROP_IStream
ISupportErrorInfo DBPROP_ISupportErrorInfo
文本书签 DBPROP_LITERALBOOKMARKS
文本行标识 DBPROP_LITERALIDENTITY
锁定模式 DBPROP_LOCKMODE
最大打开行数 DBPROP_MAXOPENROWS
最大挂起行数 DBPROP_MAXPENDINGROWS
最大行数 DBPROP_MAXROWS
通知粒度 DBPROP_NOTIFICATIONGRANULARITY
通知阶段 DBPROP_NOTIFICATIONPHASES
对象事务处理 DBPROP_TRANSACTEDOBJECT
其他人的更改可见 DBPROP_OTHERUPDATEDELETE
其他人的插入可见 DBPROP_OTHERINSERT
自己的更改可见 DBPROP_OWNUPDATEDELETE
自己的插入可见 DBPROP_OWNINSERT
在中止时保留 DBPROP_ABORTPRESERVE
在提交时保留 DBPROP_COMMITPRESERVE
快速重启 DBPROP_QUICKRESTART
可重入事件 DBPROP_REENTRANTEVENTS
删除已删除的行 DBPROP_REMOVEDELETED
报告多个更改 DBPROP_REPORTMULTIPLECHANGES
返回挂起的插入 DBPROP_RETURNPENDINGINSERTS
行删除通知 DBPROP_NOTIFYROWDELETE
行第一个更改通知 DBPROP_NOTIFYROWFIRSTCHANGE
行插入通知 DBPROP_NOTIFYROWINSERT
行特权 DBPROP_ROWRESTRICT
行重新同步通知 DBPROP_NOTIFYROWRESYNCH
行线程处理模型 DBPROP_ROWTHREADMODEL
行撤消更改通知 DBPROP_NOTIFYROWUNDOCHANGE
行撤消删除通知 DBPROP_NOTIFYROWUNDODELETE
行撤消插入通知 DBPROP_NOTIFYROWUNDOINSERT
行更新通知 DBPROP_NOTIFYROWUPDATE
行集提取位置更改通知 DBPROP_NOTIFYROWSETFETCHPOSITIONCHANGE
行集发布通知 DBPROP_NOTIFYROWSETRELEASE
向后滚动 DBPROP_CANSCROLLBACKWARDS
Server Data on Insert DBPROP_SERVERDATAONINSERT
跳过已删除的书签 DBPROP_BOOKMARKSKIP
强行标识 DBPROP_STRONGIDENTITY
可更新性 DBPROP_UPDATABILITY
使用书签 DBPROP_BOOKMARKS

有关 OLE DB Provider for Microsoft Jet 的特定实现详细信息和功能信息,请参阅 OLE DB 文档中的 Jet 提供程序