ho creato una connessione ad un db access di cui voglio una volta creato il resultset verificare lo stato del campo ESITO e fargli verificare se il contenuto è vuoto per passare a leggere il record successivo.
ho notato che ha volte il programma legge anche dei record dove il campo esito è stato valorizzato ad "OK".
Mi sapreste spiegare il motivo e come gestire la cosa ?
grazie


import java.sql.ResultSet;
import java.sql.SQLException;

import resources.Script1Helper;
import com.rational.test.ft.*;
import com.rational.test.ft.object.interfaces.*;
import com.rational.test.ft.object.interfaces.SAP.*;
import com.rational.test.ft.object.interfaces.WPF.*;
import com.rational.test.ft.object.interfaces.dojo.*;
import com.rational.test.ft.object.interfaces.siebel.*;
import com.rational.test.ft.object.interfaces.flex.*;
import com.rational.test.ft.object.interfaces.generichtml subdomain.*;
import com.rational.test.ft.script.*;
import com.rational.test.ft.value.*;
import com.rational.test.ft.vp.*;
import com.ibm.rational.test.ft.object.interfaces.sapwebp ortal.*;
import java.util.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
/**
* Description : Functional Test Script
* @author Administrator
*/

//-------------------------------------------------------------------------------------
public class Script1 extends Script1Helper
{//apre prima graffa
/**
* Script Name : Script1
* Generated : Nov 2, 2010 11:41:22 AM
* Description : Functional Test Script
* Original Host : WinNT Version 5.1 Build 2600 (S)
*
* @since 2010/11/02
* @author Administrator

*/
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
public void testMain(Object[] args )
{//apre seconda graffa

String codicefiscale ="";
String marcaggio ="";
String linea ="";
String stato ="";
String ragsoc ="";
String strSQL = "";
String contratto = "";
String iccid = "";
String servizio = "";
String datacess = "";
String esito = "";
String data_lavorazione = "";

MyConnessione db = new MyConnessione();

//Calendar now = GregorianCalendar.getInstance();
//now.setLenient(true);

//DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
//data_lavorazione=(sdf.format(now.getTime()));

//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
try
{//apre prima graffa try
db.connetti("CRMA_RENNI");
ResultSet rs = db.recordSet("SELECT * FROM STATO_ASSET");

while (rs.next())


{

//inizio primo if
//---------------------------------------------------------------------------------

{
if (rs.getString("ESITO") != null)
rs.next();



//fine primo if
//---------------------------------------------------------------------------------


//prima query
//---------------------------------------------------------------------------------
//else

pageTabList_siebPageTabs().gotoScreen("CRMA_OM_Ass et_Screen");
pageTabList_siebScreenViews().goTo("Asset Mgmt - Assets Across Org View","L2");
toolBar_hiQuery().performAction("NewQuery");

comboBox_type().setText("ABBONAMENTO or APPARATO");
comboBox_status().setText("ATTIVO or CONGELATO or SOSPESO or is null");

linea = rs.getString("ASSET");

text_serialNumber().setText(linea);
toolBar_hiQuery().performAction("ExecuteQuery");

//---------------------------------------------------------------------------------

int quantita_righe = ((Integer)list_siebList().getProperty("RowsCount") ).intValue();

//inizio secondo if
//---------------------------------------------------------------------------------
if (quantita_righe > 0)
//list_siebList().performTest(SiebList_standardVP()) ;
{

iccid= list_siebList().getCellText("OM_ICCID",0);
codicefiscale = list_siebList().getCellText("Account Location",0);
marcaggio = list_siebList().getCellText("OM_MarcaggioCliente", 0);
linea = list_siebList().getCellText("Serial Number",0);
stato= list_siebList().getCellText("Status", 0);
ragsoc = list_siebList().getCellText("OM_DenominazioneClien te", 0);
contratto = list_siebList().getCellText("OM_Agreement Number", 0);
servizio = list_siebList().getCellText("Product Name", 0);

Calendar now = GregorianCalendar.getInstance();
now.setLenient(true);
DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
data_lavorazione=(sdf.format(now.getTime()));

strSQL = "UPDATE STATO_ASSET SET CODICE_FISCALE = '"+codicefiscale+"', MARCAGGIO = '"+marcaggio+"', RAGSOC = '"+ragsoc+"', STATO = '"+stato+"', CONTRATTO = '"+contratto+"', ICCID = '"+iccid+"', SERVIZIO = '"+servizio+"', DATA_LAVORAZIONE = '"+data_lavorazione+"', ESITO = 'OK' WHERE ASSET = '"+linea+"'";
db.aggiorna(strSQL);

}

//fine secondo if
//---------------------------------------------------------------------------------

//se dalla primaquery non risultano record, faccio un altra query per vedere se l'asset
//è cessato

//inizio primo else
//---------------------------------------------------------------------------------
else

//seconda query
//---------------------------------------------------------------------------------

{ pageTabList_siebPageTabs().gotoScreen("CRMA_OM_Ass et_Screen");
pageTabList_siebScreenViews().goTo("Asset Mgmt - Assets Across Org View","L2");
toolBar_hiQuery().performAction("NewQuery");

comboBox_type().setText("ABBONAMENTO or APPARATO");
comboBox_status().setText("CESSATO");

text_oM_TipoLavorazione().setText("DISCONNESSIONE ASSET");

//linea = rs.getString("ASSET");
text_serialNumber().setText(linea);
toolBar_hiQuery().performAction("ExecuteQuery");

//---------------------------------------------------------------------------------
int quantita_righe2 = ((Integer)list_siebList().getProperty("RowsCount") ).intValue();
//inizio terzo if
//---------------------------------------------------------------------------------
if (quantita_righe2 > 0)
{
iccid= list_siebList().getCellText("OM_ICCID",0);
codicefiscale = list_siebList().getCellText("Account Location",0);
marcaggio = list_siebList().getCellText("OM_MarcaggioCliente", 0);
linea = list_siebList().getCellText("Serial Number",0);
stato= list_siebList().getCellText("Status", 0);
ragsoc = list_siebList().getCellText("OM_DenominazioneClien te", 0);
contratto = list_siebList().getCellText("OM_Agreement Number", 0);
servizio = list_siebList().getCellText("Product Name", 0);
datacess = list_siebList().getCellText("Effective End Date", 0);

Calendar now = GregorianCalendar.getInstance();
now.setLenient(true);
DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
data_lavorazione=(sdf.format(now.getTime()));

strSQL = "UPDATE STATO_ASSET SET CODICE_FISCALE = '"+codicefiscale+"', MARCAGGIO = '"+marcaggio+"', RAGSOC = '"+ragsoc+"', STATO = '"+stato+"', CONTRATTO = '"+contratto+"', ICCID = '"+iccid+"', SERVIZIO = '"+servizio+"', DATA_CESS = '"+datacess+"', DATA_LAVORAZIONE = '"+data_lavorazione+"', ESITO = 'OK' WHERE ASSET = '"+linea+"'";
db.aggiorna(strSQL);
}
//fine terzo if
//---------------------------------------------------------------------------------
//se dalla seconda query non risultano record, scrivo nel db 'ASSET NON ATTIVO'

//inizio secondo else
//---------------------------------------------------------------------------------
else

db.aggiorna("UPDATE STATO_ASSET SET CAUSALE = 'ASSET NON ATTIVO', ESITO = 'KO' WHERE ASSET = '"+linea+"'");
//else db.aggiorna("UPDATE STATO_ASSET SET CAUSALE = 'ASSET NON ATTIVO', ESITO = 'n' WHERE ASSET = '"+linea+"'");

}//chiusura secondo else
}
}
}


//---------------------------------------------------------------------------------
catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();

}
//---------------------------------------------------------------------------------
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//---------------------------------------------------------------------------------
try {
db.chiudiConnessione();
}

catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//---------------------------------------------------------------------------------

}//chiude terza graffa

}//chiude prima graffa public class Script1
//-------------------------------------------------------------------------------------