1.说明
sqlca.sqlerrd[2]当sql语句成功时,保存当前sql语句处理的行数。
对于execute,insert,update,delete,select into反映成功处理的函数。
在open语句执行时,sqlerrd[2]置为0,在fetch后增值。
2.项目举例
BAT_NUM为常量,假设为50
游标cursor1
结构体STRUCT1,最大值设为BAT_NUM
第一次循环:
iFetched = 50-0=50
(之所以sqlca.sqlerd[2] 为50,是由于STRUCT1限制了最大条数BAT_NUM-50)
iDealed = 50
第二次循环
iFetch = 100-50=50
iDeal = 100
以此类推
while(iFetch == BAT_NUM)
{
exec sql fetch cursor1 into STRUCT1.XX;
iFetch = sqlca.sqlerrd[2] - iDeal;
if(iFetch == 0)
break;
iDeal = sqlca.sqlerrd[2];
for(i = 0 ; i < iFetch ; i++)
{
}
}