dsmGetNextQObj
dsmGetNextQObj 函数调用从先前的 dsmBeginQuery 调用中获取下一个查询响应,并将响应放置在调用者缓冲区中。
dsmGetNextQObj 调用既可调用一次,也可调用多次。 每次调用函数时,都将检索到单个查询记录,否则将返回错误或 DSM_RC_FINISHED 原因码。 如果返回了 DSM_RC_FINISHED,那么无需处理更多数据。 如果已检索到所有查询数据或者无需更多查询数据,请发送 dsmEndQuery 调用以结束查询过程。
dataBlkPtr 参数必须指向使用 qryResp*Data 结构类型定义的缓冲区。 调用 dsmGetNextQObj 所在的上下文确定查询响应中输入的结构类型。
语法
dsInt16_t dsmGetNextQObj (dsUint32_t dsmHandle,
DataBlk *dataBlkPtr); 参数
- dsUint32_t dsmHandle (I)
- 将此调用与之前的 dsmInitEx 调用相关联的句柄。
- DataBlk *dataBlkPtr (I/O)
- 指向包括用于要接收的数据的缓冲区的指针和缓冲区大小的结构。 该缓冲区是 qryResp*Data 响应结构。 返回时,此结构包含转移的字节数。 下表中描述了与每个查询类型相关联的结构。 有关 DataBlk的类型定义的更多信息,请参阅以下主题: API 类型定义源文件。
表 1. DataBlk 指针结构 查询 响应结构 特别注意的字段 qtArchive qryRespArchiveData - sizeEstimate
- 包含在先前的 dsmSendObj 调用上传递的值。
- mediaClass
- 如果对象位于磁盘上,那么值可以为
MEDIA_FIXED,或者如果对象位于磁带上,那么值可以为MEDIA_LIBRARY。 - clientDeduplicated
- 指示客户机是否对此对象进行重复数删除。
qtBackup qryRespBackupData - restoreOrderExt
- 类型为
dsUint16_t。 在 dsmBeginGetData 调用上复原多个对象时,对此字段进行排序。 API 示例中提供对此调用的代码进行排序的示例,dapiqry.c。 有关排序示例,请参阅以下主题: 图 1。 - sizeEstimate
- 包含在先前的 dsmSendObj 调用上传递的值。
- mediaClass
- 如果对象位于磁盘上,那么值可以为
MEDIA_FIXED,或者如果对象位于磁带上,那么值可以为MEDIA_LIBRARY。 - clientDeduplicated
- 指示客户机是否对此对象进行重复数删除。
qtBackupActive qryARespBackupData qtBackupGroups qryRespBackupData - dsBool_t isGroupLeader
- 如果为 true,那么表明此对象是组引导符。
qtOpenGroups qryRespBackupData - dsBool_t isOpenGroup;
- 如果为 true,那么表明此组已打开且未完成。
qtFilespace qryRespFSData - backStartDate
- 包含使用 backStartDate 操作更新文件空间时的服务器时间戳记。
- backCompleteDate
- 包含使用 backCompleteDate 操作更新文件空间时的服务器时间戳记。
- lastReplStartDate
- 包含上次在服务器上启动复制的时间戳记。
- lastReplCmpltDate
- 包含上次完成复制的时间戳记,即使存在故障。
- lastBackOpDateFromServer
- 包含上次在服务器上进行保存的存储时间戳记。
- lastBackOpDateFromLocal
- 包含上次在客户机上进行保存的存储时间戳记。
qtMC qryRespMCData
qryRespMCDetailDataqtProxyNodeAuth qryRespProxyNodeData
targetNodeName
peerNodeName
hlAddress
llAddressqtProxyNodePeer qryRespProaxyNodeData
targetNodeName
peerNodeName
hlAddress
llAddress
返回码
下表描述了 dsmGetNextQObj 函数调用的返回码。
| 返回码 | 返回码编号 | 描述 |
|---|---|---|
DSM_RC_ABORT_NO_MATCH |
2 | 没有与请求的查询相匹配的结果。 |
DSM_RC_FINISHED |
121 | 已完成处理(开始 dsmEndQuery)。 无需处理其他数据。 |
DSM_RC_UNKNOWN_FORMAT |
122 | IBM® Storage Protect 尝试复原或检索的文件的格式未知。 |
DSM_RC_COMM_PROTOCOL_ERROR |
136 | 通信协议错误。 |
DSM_RC_NULL_DATABLKPTR |
2001 | 指针没有指向数据块。 |
DSM_RC_INVALID_MCNAME |
2025 | 无效的管理类名称。 |
DSM_RC_BAD_CALL_SEQUENCE |
2041 | 调用顺序无效。 |
DSM_RC_WRONG_VERSION_PARM
|
2065 | 应用程序客户机 API 的版本与 IBM Storage Protect 库版本不同。 |
DSM_RC_MORE_DATA |
2200 | 还可获取更多数据。 |
DSM_RC_BUFF_TOO_SMALL |
2210 | 缓冲区过小。 |