在访问外部数据库(非Axapta数据库)的时候,要用到Connection和Statement以及ResultSet三个对象,要注意的是Statement和ResultSet这个对象,如果不认真读Axapta的帮助文档,按照以前的编程习惯可能会出些麻烦.看下面这段代码:
Connection con;
ResultSet rs;
ResultSet rsDetail;
Statement stat;

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

;
con = new Connection();
stat = con.createStatement();
statCredit = con.createStatement()
rs = stat.executeQuery(strFmt("select * from basicdata.dbo.LedgerTable where dataAreaId = '%1'","ZB"));
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