odm_get_obj , odm_get_first 或 odm_get_next 子例程
用途
从 ODM 对象类检索对象 (一次一个对象)。
库
对象数据管理器库 (libodm.a)
语法
#include <odmi.h> struct ClassName *odm_get_obj ( ClassSymbol, Criteria, ReturnData, FIRST_NEXT)struct ClassName *odm_get_first (ClassSymbol, Criteria, ReturnData) struct ClassName *odm_get_next (ClassSymbol, ReturnData) CLASS_SYMBOL ClassSymbol;
char *Criteria;
struct ClassName *ReturnData;
int FIRST_NEXT;描述
odm_get_obj, odm_get_first和 odm_get_next 子例程从 ODM 对象类检索对象,并将这些对象返回到由 odmcreate 命令生成的 .h 文件定义的 C 语言结构中。
如果先前未打开对象类,那么 odm_get_obj, odm_get_first和 odm_get_next 子例程将打开并关闭指定的对象类。 如果先前已打开对象类,那么子例程会在返回时保持对象类处于打开状态。
参数
| 项 | 描述 |
|---|---|
| ClassSymbol | 指定从 odm_open_class 子例程返回的类符号标识。 如果尚未调用 odm_open_class 子例程,那么此标识是由 odmcreate 命令创建的 ClassName_CLASS 结构。 |
| 标准 | 指定一个字符串,该字符串包含检索对象的限定条件。 |
| ReturnData | 指定指向 odmcreate 命令创建的 .h 文件中的数据结构的指针。 .h 文件中的结构名称为 ClassName。 如果 ReturnData 参数为空 (ReturnData ==
null) ,那么将为该参数分配空间,并且调用应用程序将负责稍后释放此空间。如果返回可变长度字符串 (vchar) ,那么它们由 ReturnData 结构中的指针引用。 调用应用程序必须释放对 odm_get 子例程的每个调用之间的每个 vchar; 否则将丢失存储器。 |
| 第一页_下一页 | 指定是获取与条件匹配的第一个对象还是获取下一个对象。 有效值是:
|
返回值
成功完成后,将返回指向检索到的对象的指针。 如果找不到匹配项,那么将返回空值。 如果 "odm_get_obj、"odm_get_first或 "odm_get_next子程序不成功,将返回值-1并将odmerrno变量设置为错误代码。
错误代码
odm_get_obj, odm_get_first 或 odm_get_next 子例程的失败将 odmerrno 变量设置为下列其中一个错误代码:
- ODMI_BAD_CRIT
- ODMI_CLASS_DNE
- odmi_class_perms
- 奥德米 _INTERNAL_ERR
- odmi_invalid_clxn
- odmi_invalid_path
- odmi_magicnoo_err
- odmi_malloc_err
- ODMI_OPEN_ERR
- odmi_toomanyclasses
请参阅 对象数据管理器 (ODM) 错误代码 ,以获取 ODM 错误代码的说明。