Piuttosto strano.
Io SQL Server lo uso dalla mattina alla sera, sia tramite JDBC diretto, che tramite JPA, da applicazioni desktop e da WebApplications e problemi di questo tipo non ne ho mai avuti nessuno.
Giusto per curiosità ho scritto al volo una piccola stupida applicazione inutile che pesca i primi 20 record da una tabella con 27 campi e per ciascun record letto stampa a video 10 campi estratti assolutamente in modo casuale.
L'ho eseguito senza nessun problema:
codice:
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Random;
public class TestDBCampi {
public static void main(String[] args) {
String[] campi = {"Agente", "IDP", "Codice", "RagioneSociale", "Indirizzo",
"CAP", "Città", "Prov", "Stato", "PartitaIVA", "CodiceFiscale",
"Telefono", "FAX", "Email", "CodSC", "CodPG", "CodCat", "CodPor",
"FlEnte", "IPA", "IvaS", "IBAN", "OraAM", "OraCM", "OraAP", "OraCP", "CodPot"
};
Random rand = new Random();
Database db = new Database("sqlServer.xml");
if ( db.connetti() ) {
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
pstmt = db.getPreparedStatement("SELECT TOP 20 * FROM PA_ClientePotenziale");
rs = pstmt.executeQuery();
if (rs != null) {
while ( rs.next() ) {
// Stampo 10 campi a caso del record
for(int i=0; i<10; i++) {
int numCampo = rand.nextInt( 27 );
System.out.println(campi[numCampo] + ": " + rs.getString(numCampo + 1));
}
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (rs != null) {
try { rs.close(); } catch (Exception e) { }
}
if (pstmt != null) {
try { pstmt.close(); } catch (Exception e) { }
}
}
db.disconnetti();
}
}
}
La classe "Database" è una mia classe che si occupa di fare la connessione a partire da un file di configurazione in XML e fornire quei pochi metodi per gestirla (getPreparedStatement(), connetti(), disconnetti() ).
Ciao.