search
搜索方法根据提供的操作码在数据库中进行搜索。
搜索操作完成后,游标将定位在第一个符合给定参数的对象上。
MCO_RET classname_indexname_search(
/*IN*/ mco_trans_h trans,
/*INOUT*/ cursor,
/*IN*/ MCO_OPCODE op,
/*IN*/ [const] <type> [*]param1,
[[/*IN*/ uint2 len1,],
[/*IN*/ [const] <type> [*]param2,
[/*IN*/ uint2 len2,] …]
);
参数
trans
mco_trans_h
由 mco_trans_start()
函数返回的事务句柄。
cursor
mco_cursor_h
由 classname_indexname_index_cursor()
创建的游标句柄。
op
MCO_OPCODE
来自枚举 MCO_OPCODE
的操作码。
typedef enum MCO_OPCODE_E_ {
MCO_LT = 1,
MCO_LE = 2,
MCO_EQ = 3,
MCO_GE = 4,
MCO_GT = 5
} MCO_OPCODE;
param1
<type>
类型为 type
的变量,其中 type
是索引的 classname.fieldname
组件的数据类型。
如果索引组件为 char
或 string
,则 param
是一个 char *
。
len1
uint2
如果 param1
是字符或字符串,len1
指定输入缓冲区的长度。
param2
<type>
如果索引包含多个组成部分(即为复合索引),则需为索引的每个组成部分输入一个搜索值。
len2
uint2
如果 param2
至 paramN
是字符或字符串类型,则每个这样的参数后面都跟着一个 lenN
参数,用于指定 paramN
缓冲区的长度。
返回
MCO_S_OK
成功定位目标。
MCO_S_NOTFOUND
搜索值与该类的任何对象都不匹配。
MCO_E_VOLUNTARY_NOT_EXIST
索引名称是自愿创建的,但尚未创建,或者已被删除。
MCO_E_ILLEGAL_PARAM
非法搜索操作码。
MCO_E_NOMEM
发生内存错误。
MCO_ERR_CURSOR
发生游标错误。