在访问外部数据库(非Axapta数据库)的时候,要用到Connection和Statement以及ResultSet三个对象,要注意的是Statement和ResultSet这个对象,如果不认真读Axapta的帮助文档,按照以前的编程习惯可能会出些麻烦.看下面这段代码:
Statement Connection con;
Statement    ResultSet rs;
Statement    ResultSet rsDetail;
Statement    Statement stat;
Statement   
Statement
Statement    ;
Statement    con 
= new Connection();
Statement    stat 
= con.createStatement();
Statement   
Statement    rs 
= stat.executeQuery(strFmt("select * from basicdata.dbo.LedgerTable where dataAreaId = '%1'","ZB"));
Statement    
while(rs.next())
    }

按照ADO.NET编程习惯,应该rs和rsCredit分别循环,对应rs中的每一条记录,输出一遍rsCredit中的记录 .
但实际情况是不管rs有多少条记录,第一个循环只会执行一次.看了Statement的帮助文档才知道,每个Statement对象只能对应一个ResultSet,在返回下一个ResultSet时会将上一个关掉,真是奇怪,执行一条语句就返回一个结果集,干吗非要把上一个关掉......
解决办法就是如果ResultSet要嵌套,则用两个Statement分别对应不同的ResultSet,有些bt.
Statement Connection con;
Statement    ResultSet rs;
Statement    ResultSet rsDetail;
Statement    Statement stat;
Statement    Statement statCredit;
Statement
Statement    ;
Statement    con 
= new Connection();
Statement    stat 
= con.createStatement();
Statement    statCredit 
= con.createStatement()
Statement    rs 
= stat.executeQuery(strFmt("select * from basicdata.dbo.LedgerTable where dataAreaId = '%1'","ZB"));
Statement    
while(rs.next())
    }

相关文章:

  • 2022-12-23
  • 2021-07-20
  • 2019-08-15
  • 2018-10-12
  • 2021-12-11
  • 2021-11-12
  • 2021-10-06
  • 2021-09-24
猜你喜欢
  • 2021-06-21
  • 2021-05-31
  • 2022-03-03
  • 2022-02-09
  • 2022-03-03
  • 2022-12-23
  • 2021-06-09
相关资源
相似解决方案