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
提示 DBPROP_INIT_PROMPT
提供程序友好名称 DBPROP_PROVIDERFRIENDLYNAME
提供者名称 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 提供程序