odm_get_obj , odm_get_first 或 odm_get_next 子例程

用途

从 ODM 对象类检索对象 (一次一个对象)。

对象数据管理器库 (libodm.a)

语法

#include <odmi.h>
struct ClassName *odm_get_obj ( ClassSymbolCriteriaReturnDataFIRST_NEXT)
struct ClassName *odm_get_first (ClassSymbolCriteriaReturnData)
struct ClassName *odm_get_next (ClassSymbol, ReturnData)
CLASS_SYMBOL ClassSymbol;
char *Criteria;
struct ClassName *ReturnData;
int FIRST_NEXT;

描述

odm_get_objodm_get_firstodm_get_next 子例程从 ODM 对象类检索对象,并将这些对象返回到由 odmcreate 命令生成的 .h 文件定义的 C 语言结构中。

如果先前未打开对象类,那么 odm_get_objodm_get_firstodm_get_next 子例程将打开并关闭指定的对象类。 如果先前已打开对象类,那么子例程会在返回时保持对象类处于打开状态。

参数

表 1. 参数
描述
ClassSymbol 指定从 odm_open_class 子例程返回的类符号标识。 如果尚未调用 odm_open_class 子例程,那么此标识是由 odmcreate 命令创建的 ClassName_CLASS 结构。
标准 指定一个字符串,该字符串包含检索对象的限定条件。
ReturnData 指定指向 odmcreate 命令创建的 .h 文件中的数据结构的指针。 .h 文件中的结构名称为 ClassName。 如果 ReturnData 参数为空 (ReturnData == null) ,那么将为该参数分配空间,并且调用应用程序将负责稍后释放此空间。

如果返回可变长度字符串 (vchar) ,那么它们由 ReturnData 结构中的指针引用。 调用应用程序必须释放对 odm_get 子例程的每个调用之间的每个 vchar; 否则将丢失存储器。

第一页_下一页 指定是获取与条件匹配的第一个对象还是获取下一个对象。 有效值是:
ODM_FIRST
检索与搜索条件匹配的第一个对象。
下一个 (ODM_NEXT)
检索与搜索条件匹配的下一个对象。 如果 FIRST_NEXT 参数设置为 下一个 (ODM_NEXT),那么将忽略 标准 参数。

返回值

成功完成后,将返回指向检索到的对象的指针。 如果找不到匹配项,那么将返回空值。 如果 "odm_get_obj、"odm_get_first或 "odm_get_next子程序不成功,将返回值-1并将odmerrno变量设置为错误代码。

错误代码

odm_get_objodm_get_firstodm_get_next 子例程的失败将 odmerrno 变量设置为下列其中一个错误代码:

请参阅 对象数据管理器 (ODM) 错误代码 ,以获取 ODM 错误代码的说明。