在DB2中创建了一个存储过程,需要处理大量数据,在DB2CMD下执行存储过程,一切OK,但是通过VC+ADO的方式,却发现执行失败,查找具体的原因发现 DB2中错误信息为: SQL0952N 由于中断,处理被取消。 SQLSTATE=57014
;
本以为是DB2中的超时时间配置有问题,因此将DB2 下的db2cli.ini文件下加入了 QUERYTIMEOUTINTERVAL=0 ,
重启DB2,再次执行,却发现仍然是错误。。。。
百思不得其解,所以怀疑ADO是否超时时间设置失败,之前仅在每次open连接前,将连接的超时时间设置为0。
查了下资料却发现,原来_CommandPtr 也存在超时一说, 需要在执行存储过程前 设置pWriteUserCommand->CommandTimeout = 0;
测试代码中加入该超时时间设置,一切OK。。。