zoukankan      html  css  js  c++  java
  • Statement

    在访问外部数据库(非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())
        
    {
            info(rs.getString(
    1));
            rsCredit 
    = stat.executeQuery(strFmt("select * from basicdata.dbo.LedgerTable where dataAreaId = '%1'","ZB"));
            
    while(rsCredit.next())
            
    {
                info( 
    "第二次循环:"+rsCredit.getString(1));
            }

        }

    按照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())
        
    {
            info(rs.getString(
    1));
            rsCredit 
    = statCredit .executeQuery(strFmt("select * from basicdata.dbo.LedgerTable where dataAreaId = '%1'","ZB"));
            
    while(rsCredit.next())
            
    {
                info( 
    "第二重循环:"+rsCredit.getString(1));
            }

        }

  • 相关阅读:
    宿主机无法访问CentOS7上Jenkins服务的解决办法
    415. Add Strings
    367. Valid Perfect Square
    326. Power of Three
    258. Add Digits
    231. Power of Two
    204. Count Primes
    202. Happy Number
    172. Factorial Trailing Zeroes
    171. Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/Farseer1215/p/585547.html
Copyright © 2011-2022 走看看