ts_begin_scan() 函数

ts_begin_scan() 函数开始扫描时间系列中的元素。

语法

ts_tscan *
ts_begin_scan(ts_tsdesc   *tsdesc, 
              mi_integer  flags, 
              mi_datetime *begin_stamp, 
              mi_datetime *end_stamp)
tsdesc
ts_open() 返回。
flags
确定扫描应该如何处理返回的集合。
begin_stamp
mi_datetime 的指针,指定应该开始扫描的位置。如果 begin_stampNULL,扫描会在时间系列的开头开始。begin_stamp 参数的行为类似于 Clip 函数的 begin_stamp 参数(Clip 函数),除非设置了 TS_SCAN_EXACT_START。
end_stamp
mi_datetime 的指针,指定应该停止扫描的位置。如果 end_stampNULL,扫描会在时间系列的结尾结束。设置 end_stamp 时,扫描在返回 end_stamp 的数据之后停止。

描述

此函数在两个时间戳记之间开始扫描时间系列。

通过调用 ts_end_scan() 可关闭扫描描述符。

flags 参数值

flags 参数决定了扫描应如何处理返回的集合。flags 参数的有效值在 tseries.h 中定义。整数值是下表中所需值的总和。
标志 含义
TS_SCAN_HIDDEN 512 (0x200) 返回 ts_hide_elem() 标记的隐藏元素
TS_SCAN_EXACT_START 256 (0x100) 如果开始点早于时间系列原点,返回 NULL。(通常,扫描不在时间系列原点之前开始。)
TS_SCAN_EXACT_END 128 (0x80) 返回 NULL,直到达到扫描的结束时间点,即使结束时间点超出时间系列的结尾也是如此。
TS_SCAN_NO_NULLS 32 (0x20) 影响从未被分配的元素 (TS_NULL_NOTALLOCATED) 的返回方式。通常,如果一个元素未被分配,它会作为 NULL 返回。如果设置 TS_SCAN_NO_NULLS,那么会返回改为将每个列设置为 NULL 的元素。
TS_SCAN_SKIP_END 16 (0x10) 跳过扫描范围的结束时间点上的元素。
TS_SCAN_SKIP_BEGIN 8 (0x08) 跳过扫描范围的开始时间点上的元素。
TS_SCAN_SKIP_HIDDEN 4 (0x04) 跳过隐藏的元素。

返回结果

返回打开的扫描描述符,或者如果扫描时间都在时间系列的原点之前或如果结尾时间在开始时间之前,那么返回 NULL

示例

请参阅 Interp 函数示例中的 ts_interp() 函数中的 ts_begin_scan() 函数示例。