适用于: Windows |Windows Server
JetOpenDatabase 函数
JetOpenDatabase 函数使用 JetAttachDatabase 或 JetAttachDatabase2 函数打开以前附加的数据库,以便与数据库会话一起使用。 对于同一数据库,可以多次调用此函数。
    JET_ERR JET_API JetOpenDatabase(
      __in          JET_SESID sesid,
      __in          const tchar* szFilename,
      __in_opt      const tchar* szConnect,
      __out         JET_DBID* pdbid,
      __in          JET_GRBIT grbit
    );
parameters
sesid
用于 API 调用的数据库会话上下文。
szFilename
要打开的数据库的名称。
szConnect
保留。 设置为 NULL。
pdbid
指向缓冲区的指针,该缓冲区在成功调用时包含数据库的标识符。 如果调用失败,则值未定义。
grbit
一组指定以下选项的零个或多个位。
| 值 | 含义 | 
|---|---|
| JET_bitDbExclusive | 仅允许单个会话附加数据库。 通常,多个会话可以打开数据库。 | 
| JET_bitDbReadOnly | 防止对数据库进行修改。 | 
返回值
此函数返回具有以下返回代码之一 的JET_ERR 数据类型。 有关可能的 ESE 错误的详细信息,请参阅 可扩展存储引擎错误 和 错误处理参数。
| 返回代码 | 说明 | 
|---|---|
| JET_errSuccess | 操作已成功完成。 | 
| JET_errDatabaseInUse | 已请求独占访问,但无法授予。 | 
| JET_errDatabaseInvalidPath | szFilename 中提供了无效的路径。 szFilename 必须是非 NULL 且引用有效的文件。 | 
| JET_errDatabaseLocked | 另一个会话已使用 JET_bitDbExclusive) 以独占方式打开数据库 (。 | 
| JET_errDatabaseNotFound | 以前未附加数据库 (请参阅 JetAttachDatabase) 。 | 
| JET_errInvalidDatabase | 尝试打开不是有效数据库文件的文件。 | 
| JET_errOneDatabasePerSession | 尝试打开多个数据库,并设置了 JET_paramOneDatabasePerSession 。 有关详细信息,请参阅 系统参数。 | 
| JET_wrnFileOpenReadOnly | 该文件已作为只读附加,但 JetOpenDatabase 未传递JET_bitDbReadOnly。 数据库仍以只读访问权限打开。 | 
要求
| 要求 | 值 | 
|---|---|
| 客户端 | 需要 Windows Vista、Windows XP 或 Windows 2000 Professional。 | 
| 服务器 | 需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。 | 
| 标头 | 在 Esent.h 中声明。 | 
| Library | 使用 ESENT.lib。 | 
| DLL | 需要ESENT.dll。 | 
| Unicode | 作为 JetOpenDatabaseW (Unicode) 和 JetOpenDatabaseA (ANSI) 实现。 | 
另请参阅
              JET_ERR
              JET_GRBIT
              JET_SESID
              JET_TABLEID
              JetAttachDatabase
              JetAttachDatabase2
              JetSetSystemParameter
              系统参数