ResultSet

mdelph Messages postés 13 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 23 novembre 2009 - 1 avril 2004 à 17:03
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 - 2 avril 2004 à 18:10
Je débute dans le monde de l'informatique, et donc java.
Le contexte : une base de données sous access, la connexion passe sans problème pour des requêtes du type ' select * from table' ou ' insert into ...'.
Mon souci est lors de la recupération des données, lorsque je fais String mavariable = resultat.getString(1), il indique qu'il ne trouve pas la source de données.
De plus j'aimerai savoir comment récupérer le résultat d'une requête avec 'select max (champ) from table', car l'erreur est la même.

Merci pour votre aide.

mdelph

4 réponses

cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
1 avril 2004 à 18:47
GodConan :clown)

tu fait bien ton resultset.next() avant de faire T get??
0
mdelph Messages postés 13 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 23 novembre 2009
1 avril 2004 à 23:02
voilà mon prog dans un main, pour mes essais

package Projet.Sources;
import java.sql.*;
import java.io.*;

public class essaiprog {

public static void main (String args[])
throws java.io.IOException {
//chaîne de connection au lien odbc
String url = "jdbc:odbc:GestionDuPersonnel";
Connection con = null;
try {
//déclaration de la classe
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

// création et configuration d'une variable connexion url
con = DriverManager.getConnection(url);

//création d'une variable statement employé pour exécuter des requêtes SQL et obtenir les résultats
Statement requete = con.createStatement();

ResultSet resultat = requete.executeQuery("select max(pers_UID) from personnes");

//traitement du résultat
while (resultat.next()) {
Clavier.aff("num :"+resultat.getString(1));
nom = resultat.getString(1);
Clavier.aff(nom);
}
con.close();
}
catch (SQLException ex){
Clavier.aff ("Source non trouvée.");
}
catch (java.lang.Exception ex){
ex.printStackTrace();
}
}

}
//la classe clavier me permet d'afficher int, String double...

merci pour l'aide
mdelph ;)
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
2 avril 2004 à 11:57
Salut

peut etre que c'est parce que dans ta base de données ce que tu cherches à récupérer n'est pas de type "string".

Essaies plutot de récupérer avec un getObject que tu castes en String :

nom=(String)(resultat.getObject(1));

J'espère que ça pourra t'aider

Fanny
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
2 avril 2004 à 18:10
GodConan :clown)

ben normalement c le driver jdbc qui soccupe de tou metre ds une string ds ce cas ;o)

mais en voyant ton code l erreur devient l impide ;o) héhé

tu fait 2 acces getString sur le meme champ. et bien il faut savoir ;o) et que c impossible une foi lu la donnée n est plus disponible dc tu doi passer par une variable intermediere
ou comme tu l a deja organiser diferement

Clavier.aff("num :"+resultat.getString(1));
nom = resultat.getString(1);
Clavier.aff(nom);

devient

nom = resultat.getString(1);
Clavier.aff("num :"+nom);
Clavier.aff(nom);

;o) ce ki est ridicule ;o) menfin tu voi le principe tu ne peu pas faire 2 get de suite sur le meme champ.

++
0
Rejoignez-nous