ITPub博客

首页 > > > 求救!C++的OTL库otl_stream不能正常结束的问题

求救!C++的OTL库otl_stream不能正常结束的问题

作者:dapan 时间:2019-09-23 09:42:48 0 删除 编辑

根据说明文档otl_stream类构造函数的第一个参数是缓存区中能存放查询结果的行数,按正常理解,如果表中有100条记录,我将该参数设置50条应该是可以的,但实际上不行,在读第50条的f2的时候就报错,所以我将该参数设置到200,但是一样读到第100行的f2的时候报错,错误与设置50是一样的,不同只是一个在读第50行最后一列的值时报错,一个在读第100行最后一列的值时报错,且otl_exception中所有属性成员都为空字符串!我将otl源码中的抛出异常的那一句去掉(这是下策,可能造成严重的潜在问题,但是我想看一下结果,而且只是去掉一个throw语句),我想总该没有错误了吧?合理的话,到第100行之后,i.eof()语句应该为false,但是实际却仍是true,所以程序继续执行循环然后报错,看来简单修改一下otl源码也不行,这如何解决呢?很急,望有高手能救一把!

void select() {

    otl_stream i(50, "select f1,f2 from test_tab", db);

     float f1, f2;

     while (!i.eof()){ //不知为何i.eof()总是为true?

       //i.set_flush(true); //此句加与不加是一样的

       i>>f1>>f2;

       cout<<"f1="<<f1<<", f2="<<f2<<endl;

 } }

我用的是SqlServer2005,otl版本4.0.334(最新的)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/758/viewspace-3134926/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-08-07

  • 博文量
    4504
  • 访问量
    87291