Functions.SqlMoreResults 方法 | |
如果有更多结果集可用,则将另一个结果集复制到 X# 游标中。
命名空间:
XSharp.VFP
程序集:
XSharp.VFP (在 XSharp.VFP.dll 中) 版本:2.22 GA
语法 FUNCTION SqlMoreResults(
nStatementHandle AS LONG,
cCursorName AS USUAL,
aCountInfo AS USUAL
) AS LONG
public static int SqlMoreResults(
int nStatementHandle,
[DefaultParameterValueAttribute(0, 1)] __Usual cCursorName,
[DefaultParameterValueAttribute(0, 1)] __Usual aCountInfo
)
查看代码参数
- nStatementHandle
- 类型:Int32
指定由 SqlConnect() 返回的数据源的语句句柄。
- cCursorName
- 类型:__Usual
指定结果集发送到的 X# 游标的名称。如果不包含游标名称,X# 使用默认名称 SQLRESULT。
对于多个结果集,新游标名称通过在第一个游标名称后附加一个递增的数字来派生。
- aCountInfo
- 类型:__Usual
指定用于填充行计数信息的数组的名称。如果数组不存在,则会创建该数组。
数组有两列:1 – 别名,2 – 计数。
返回值
类型:
Int32
数值型。
SqlMoreResults() 返回 0 表示 SQL 语句仍在执行,返回 1 表示已完成执行,返回 2 表示未找到更多数据。
在非批处理模式下,应在每次成功调用 SqlExec() 后调用 SqlMoreResults(),直到 SqlMoreResults() 返回 2(未找到更多数据)。
SqlSetProp() 的批处理模式选项的设置决定了 SqlExec() 是以批处理模式还是非批处理模式执行。
如果发生连接级别错误,SqlMoreResults() 返回 -1;如果发生环境级别错误,返回 -2。
备注
SqlMoreResults() 确定是否有更多结果集可用,这些结果集是通过在非批处理模式下执行 SqlExec() 的 SQL 语句生成的。
如果有更多结果集可用,它们会被逐个复制到 X# 游标中。
SqlMoreResults() 是四个可以同步或异步执行的函数之一。 SqlSetProp() 的异步设置决定这些函数是同步还是异步执行。
在异步模式下,必须重复调用 SqlMoreResults() 直到它返回一个非 0 的值(仍在执行)。
列 | 数组内容 | 数据类型 | 描述 |
---|
别名 | 0 | 字符型 |
表示 SQL 命令未返回任何结果。可能是没有记录返回,或者 SQL 命令在返回结果之前失败了。
(最后一次 SqlMoreResults 调用)或执行在任何结果处理之前失败。只能在第一行。 该行的计数列包含值 -1。
|
| 非空大写字符串 | 字符型 |
游标的别名 – 记录获取操作的目标。该行的计数列包含获取的记录数或 -1(如果获取失败)。
如果计数为 -1,则可能未创建游标。在异步执行期间,游标的获取过程可以在多个
SqlMoreResults 或 SqlExec 调用之间拆分;每次调用返回游标的自己的获取计数。
|
| 字符型 | 空字符串 | 表示 SQL 命令(插入、更新或删除)未返回结果集。 |
计数 | 受影响或获取的记录数。 | 整数型 | 表示 ODBC SQLRowCount 函数返回的受影响记录数。如果记录数不可用,则返回 -1。 |
示例 1= SqlSetProp(gnHandle, 'BatchMode', .F.)
2= SqlExec(gnHandle, 'Select * From authors; Select * From titles')
3= SqlMoreRes(gnHandle)
4= SqlMoreRes(gnHandle)
参见