动态sql的使用要经过如下几个过程:
1、prepare
2、declare
3、open
4、fetch
5、close我现在要测试open和fetch时的出错处理是否正确。
求教一个解决方法,能通过修改测试数据达到如下目的:
1、prepare和declare不出错,而open出错。
2、prepare和declare和open不出错,而fetch出错。叩谢!100分奉上。

解决方案 »

  1.   

    关注下
    open出错么 sql上面做点文章
    fetch出错么 我想想,数据类型和长度应该都按照表字段的,应该没问题
    那还是要从sql上做文章,少select一个字段等等
      

  2.   

    sql是定死的,不能因为测试而改动程序。
    所以只能对表或者数据做手脚。(因为权限低,不能对数据库全局做手脚。)
    测试prepare的时候,我是直接把表改名,让sql找不到表,才出来prepare的错误的。因为表里字段的类型和长度与宿主语言的变量的类型和长度都一致,所以也不能用溢出等方法。
    而且表的所有字段都是not null,本来想改成抽出数据为null,导致宿主语言不能接受而fetch出错。
    但是宿主语言是COBOL,自动把抽出null的字段转换为变量类型的初始值,比如数值型就为0,字符型就为全空格。help!!!