mco_uda_compare
MCO_RET mco_uda_compare( /*IN*/ mco_trans_h t,
/*IN*/ const mco_cursor_t * cursor,
/*IN*/ const mco_uda_value_t * keys,
/*IN*/ unsigned short keys_count,
/*OUT*/ int * cmp_result );
| |
---|
t | 事务处理 |
cursor | 包含已初始化游标的结构的地址mco_cursor_t |
keys | 包含要比较的键值的结构数组mco_uda_value_t |
keys_count | keys 数组的大小 |
cmp_result | 比较结果:如果键值等于当前光标位置的键值,则为零,小于或大于零 id 键不匹配 |
将索引光标的当前位置引用的值与 parameter 中的值进行比较。keys
| |
---|
MCO_S_OK | 已成功执行比较操作 |
MCO_E_UDA_WRONG_KEY_NUM | Keys_count不匹配 |
MCO_E_UDA_WRONG_KEY_TYPE | 密钥类型不匹配 |
/* 应用程序代码片段 */
int main(int argc, char* argv[])
{
MCO_RET rc;
mco_db_h db;
mco_trans_h t;
mco_cursor_t csr;
mco_uda_value_t keys[1];
unsigned short struct_no = 1;
unsigned short index_no = 2;
int cmp_result;
...
rc = mco_trans_start(db, MCO_READ_WRITE, MCO_TRANS_FOREGROUND, &t);
if ( MCO_S_OK == rc)
{
...
keys[0].type = MCO_DD_UINT4;
keys[0].u4 = 120;
/* Lookup the first object with id >= 120. */
rc = mco_uda_lookup(t, struct_no, index_no, MCO_GE,
keys, 1, &csr);
for ( ; rc == MCO_S_OK; rc = mco_cursor_next(t, &csr)) {
{
rc = mco_uda_compare(t, &csr, keys, 1, &cmp_result);
/* Break out of loop when key value is no longer 120 */
if ( 0 != cmp_result ) break;
...
}
}
...
}