rdbapi 5.1.1.9 实时数据库C接口 for windows/Linux |

载入中...
搜索中...
未找到
函数
SOE相关相关接口

## 函数
int | rdb_soeput (int h, rec_soe psoe[], int nsize)
| 写入SOE事件
int | rdb_soequery (int h, long long lts, unsigned int autokey, long long lte, const char *sexp, rdbcb_OnReadSoes pfun, void *pParam)
| 查询SOE事件
int | rdb_soeupdate (int h, rec_soe psoe[], int nsize)
| 更新SOE事件记录
int | rdb_soesubscription (int h, int flag)
| 订阅SOE事件
int | rdb_soesubscription_setfun (int h, rdbcb_OnSscPutSoes fun, void *param)
| 设置处理订阅的SOE事件处理回调函数
int | rdb_getoutlimit_snaps (int h, const char *station, void(*onread)(rec_tagval pvals[], int nitems, void *param), void *puserparam)
| 读取当前越限标签快照
int | rdb_soesubscription_ex (int h, int flag, const char *station)
| 订阅SOE的高级版，支持通过中心站订阅子站SOE
int | rdb_soedelete (int h, const char *datetime_begin, unsigned int ukey_begin, const char *datetime_end, unsigned int ukey_end, int *pnumdelrecords)
| 删除SOE记录, 双机热备时，只删除当前连接的实时库中数据。

## 详细描述

SOE事件的写入，查询相关接口函数。

## 函数说明

## ◆ rdb_getoutlimit_snaps()

int rdb_getoutlimit_snaps | ( | int | h,
|  | const char * | station,
|  | void(*)(rec_tagval pvals[], int nitems, void *param) | onread,
|  | void * | puserparam )

读取当前越限标签快照

参数

  h | [in] rdb_create创建的句柄.
  station | [in] 站名,nullptr表示主站
  onread | [in] 数据回调函数
  puserparam | 回调函数的参数,会原样填写到onread的param里。

返回
  0表示成功, 其余值为失败错误码。

## ◆ rdb_soedelete()

int rdb_soedelete | ( | int | h,
|  | const char * | datetime_begin,
|  | unsigned int | ukey_begin,
|  | const char * | datetime_end,
|  | unsigned int | ukey_end,
|  | int * | pnumdelrecords )

删除SOE记录, 双机热备时，只删除当前连接的实时库中数据。

参数

  h | rdb_create创建的句柄.
  datetime_begin | 开始日期时间,ISO格式"2023-1-1T08:0:0.000+08:00"
  ukey_begin | 开始序号
  datetime_end | 结束日期时间(ISO格式), nullptr或者空字符串表示一直删除到结束
  ukey_end | 结束序号
  pnumdelrecords | 成功后输出删除的记录数

返回
  返回0成功，其他为错误码

## ◆ rdb_soeput()

int rdb_soeput | ( | int | h,
|  | rec_soe | psoe[],
|  | int | nsize )

写入SOE事件

参数

  h | [in] rdb_create创建的句柄.
  psoe | [in] SOE事件记录数组
  nsize | psoe中的记录个数

返回
  返回 0 表示成功,其余值为失败错误码。

备注
  这个函数为写入新的SOE事件，每个SOE记录的uautokey字段填写0,追加和历史补录均使用本函数;

## ◆ rdb_soequery()

int rdb_soequery | ( | int | h,
|  | long long | lts,
|  | unsigned int | autokey,
|  | long long | lte,
|  | const char * | sexp,
|  | rdbcb_OnReadSoes | pfun,
|  | void * | pParam )

查询SOE事件

参数

  h | [in] rdb_create创建的句柄.
  lts | [in] 开始时标,参见T_TIME
  autokey | [in] 开始时标处的autokey
  lte | [in] 结束时标,参见T_TIME,-1表示查询到数据结束
  sexp | [in] 查询表达式
  pfun | [in] 查询结果记录回调函数
  pParam | [in]回调参数

返回
  返回 0 表示成功,其余值为失败错误码。

备注
  直到查询完成或者回调函数返回0表示结束查询,调用者可以随时通过回调函数返回0结束查询。整个查询过程中，回调函数可能被调用多次.

## ◆ rdb_soesubscription()

int rdb_soesubscription | ( | int | h,
|  | int | flag )

订阅SOE事件

参数

  h | [in] rdb_create创建的句柄.
  flag | [in] 订阅模式; 0:取消订阅; 1:订阅最新; 2:订阅更新的SOE(被处理后的SOE); 3:订阅最新和更新后的SOE.

返回
  返回 0 表示成功,其余值为失败错误码。

## ◆ rdb_soesubscription_ex()

int rdb_soesubscription_ex | ( | int | h,
|  | int | flag,
|  | const char * | station )

订阅SOE的高级版，支持通过中心站订阅子站SOE

参数

  h | [in] rdb_create创建的句柄.
  flag | [in] 订阅模式; 0:取消订阅; 1:订阅最新; 2:订阅更新的SOE(被处理后的SOE); 3:订阅最新和更新后的SOE.
  station | [in] 子站名，null表示订阅目前连接的站的SOE(和rdb_soesubscription功能同)。

返回
  0: success; 其他为错误码

## ◆ rdb_soesubscription_setfun()

int rdb_soesubscription_setfun | ( | int | h,
|  | rdbcb_OnSscPutSoes | fun,
|  | void * | param )

设置处理订阅的SOE事件处理回调函数

参数

  h | [in] rdb_create创建的句柄.
  fun | [in] 回调函数
  param | [in] 回调函数自己带入的参数

返回
  返回 0 表示成功,其余值为失败错误码。

备注
  在调用rdb_soesubscription前调用本函数设置处理订阅推送回来的SOE事件

## ◆ rdb_soeupdate()

int rdb_soeupdate | ( | int | h,
|  | rec_soe | psoe[],
|  | int | nsize )

更新SOE事件记录

参数

  h | [in] rdb_create创建的句柄.
  psoe | [in/out] 事件记录数组,返回时cstatus字段会被改写
  nsize | [in] psoe中的记录数

返回
  返回 0 表示成功,其余值为失败错误码。

备注
  SOE事件使用time字段和uautokey字段组合主键来决定唯一的SOE记录,当返回0后，还需判断每个SOE记录中的status字段为0表示成功，1表示更新失败