Bonjour,
J'ai connecté un petit programme java à une source de données ODBC reliée à un AS400.
Cette source de donnée est configurée correctement, car l'explorateur de bases de données de Dephi permet le visu de tous les records de tous les fichiers.
Et moi avec jdbc, je ne peux lire que le premier.
Pourtant, si j'utilise une source ODBC access, ça tourne impeccable.
Si quelqu'un a une idée, je suis preneur.
Mon code:
import java.sql.*;
import java.util.*;
import javax.swing.JOptionPane;
class Base
{
private static Connection b;
public Base()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String usr = JOptionPane.showInputDialog(null, "Utilisateur");
String pwd = JOptionPane.showInputDialog(null, "Mot de passe");
b = DriverManager.getConnection("jdbc:odbc:EssaiAS400", usr, pwd);
}
catch (Exception e)
{
System.out.println(e);
JOptionPane.showMessageDialog(null,"Erreur de connexion "+(char)TxtConstants.AAG+
" la base de donn"+(char)TxtConstants.EAA+"es",
"Class Base",JOptionPane.ERROR_MESSAGE);
System.exit(0);
}
}
public boolean getConnection()
{
return (b!=null);
}
public int retrieveSample()
{
int res = 0;
try
{
/*
DatabaseMetaData DMD = b.getMetaData();
ResultSet catalogues = DMD.getCatalogs();
while (catalogues.next())
{
ResultSet rs = DMD.getColumns(catalogues.getString(1),
null,
null,
null);
while(rs.next())
{
for(int p = 1; p < 11; ++p)
try{
System.out.print(rs.getString(p));
System.out.print(" || ");
}
catch(Exception e){
System.out.print(p);
System.out.print(" || ");
}
System.out.println("\n\n------table suivante----------\n\n");
}
}
*/
Statement stmt = b.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE); // La table est accessible pendat que l'utilisateur accède aux données
ResultSet rs = stmt.executeQuery("SELECT * FROM TRISTANGEN.UUALREP");
ResultSetMetaData meta = rs.getMetaData();
int colCount = meta.getColumnCount();
rs.last();
res = rs.getRow();
System.out.println(res);
byte [] buff = new byte[5];
int bidon = System.in.read();
rs.beforeFirst();
while (rs.next())
{
for(int i = 1; i<=colCount; ++i)
System.out.print(rs.getString(i)+" || ");
System.out.println(" ");
}
}
catch (Exception e)
{
System.out.println(e);
}
return res;
}
public static void main(String [] args)
{
Base base = new Base();
int i = base.retrieveSample();
System.out.println(i);
System.exit(0);
}
}
[Roger, un muscadet.]