[RESOLU] Obtenir le resultat d'une requete et le nombre de reponse

Obtenir le resultat d'une requete et le nombre de reponse [RESOLU] - Java - Programmation

Marsh Posté le 01-07-2004 à 11:10:51    

Salut,
 
 
Je fais une ptite appli qui utilise une base MySQL et un pont JDBC. Je recupere donc le resultat des mes requetes dans un objet ResultSet. Et j'aimerai savoir s'il est possible de recuperer le resultat d'une requete et le nombre de reponse en une seule requete. (sans faire un num_row dans une deuxieme requete)
 
Merci


Message édité par boubavic le 01-07-2004 à 18:04:30
Reply

Marsh Posté le 01-07-2004 à 11:10:51   

Reply

Marsh Posté le 01-07-2004 à 11:25:38    

Non ce n'est pas possible.
Tu dois parcourir ton ResultSet en utilisant la méthode next() jusqu'a qu'il n'y ai plus de résultat disponible, et à ce moment la tu sauras combien de lignes tu as récupéré.


---------------
Light is right
Reply

Marsh Posté le 01-07-2004 à 11:49:34    

merci c'est bien ce que je me disais ...
 
en fait ce que je veux faire, c'est mettre en forme mes données pour les intégrer a une ihm. Mon IHM prend en parametre soit des tableaux soit des matrices donc il me faut forcement le nombre d'enregistrement...il va donc falloir que je fasse ca en 2 phases ...
C'est dommage mais bon merci

Reply

Marsh Posté le 01-07-2004 à 11:49:43    

Si, c'est possible...
 

Code :
  1. try
  2. {
  3.     // Move to last position
  4.     resultSet.last();
  5.     // Retrieves the current row number
  6.     rowCount = resultSet.getRow();
  7.     // Move cursor before before the first row
  8.     resultSet.beforeFirst();
  9.     while(resultSet.next())
  10.     {
  11.         ...

Reply

Marsh Posté le 01-07-2004 à 11:54:59    

Oki mais ca ne marche pas si ton ResultSet est de type TYPE_FORWARD_ONLY.
Et malheureusement la pluspart des driver JDBC n'acceptent pas d'autres type.


---------------
Light is right
Reply

Marsh Posté le 01-07-2004 à 12:03:12    

merci va falloir que je test ca...mais je sais pas si mon driver le supporte ...on va bien voir ...merci

Reply

Marsh Posté le 01-07-2004 à 12:16:10    

nerisson a écrit :

Et malheureusement la pluspart des driver JDBC n'acceptent pas d'autres type.


 
:heink:, en 1.0 peut-etre mais en 2.0 justement l'utilité du TYPE_FORWARD_ONLY prend tout son sens...

Reply

Marsh Posté le 01-07-2004 à 12:25:59    

bon ben le mien fonctionne donc c'est cool ;) merci a tous

Reply

Marsh Posté le 01-07-2004 à 12:32:29    

nerisson a écrit :

Oki mais ca ne marche pas si ton ResultSet est de type TYPE_FORWARD_ONLY.
Et malheureusement la pluspart des driver JDBC n'acceptent pas d'autres type.


Deplus, si mes souvenirs sont bon, JDBC n'est qu'un pont par dessus ODBC, hors un grand nombre de SGBD (Oracle le premier) ont des drivers ODBC - et du coup, certainement JDBC - complètement buggés. Les move(), count() et autre retournent souvent des résultats étrange...
 
Un bug amusant avec SQL Server 6.5, c'était qu'un count() sur une requête avec jointure retournait le nombre de lignes de la première table, sans conditions. Truc qui n'avais rien à voir avec la réalité.
 
Oracle 8.0.5, c'est -1 qui est retourné systématiquement.
 
SQL Server 7.0, quand il y a un champ de type "text" (un blob) ça fait -1 aussi, alors qu'avec Oracle, ODBC ne supporte carrément pas du tout les type blod (comme ça c'est réglé)
 
Enfin bon...
 
Pas d'autre choix que de faire un next() en incrémentant un conteur, puis un first() pour revenir (normalement, first() marche même quand tu est en FORWARD_ONLY, du moins quand tu bosses en ODBC)

Reply

Marsh Posté le 01-07-2004 à 12:57:40    

Arjuna a écrit :

JDBC n'est qu'un pont par dessus ODBC


t'es souvenirs sont mauvais.
ce serait idiot. Comment voudrais tu que ca fonctionne sur d'autres os que windows ?
 
il existe un pont jdbc-odbc, ca veut pas dire que ca se limite à ca ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 01-07-2004 à 12:57:40   

Reply

Marsh Posté le 01-07-2004 à 13:34:04    

ODBC est tout à fait supporté sur d'autres systèmes que Windows...


Message édité par Arjuna le 01-07-2004 à 13:34:15
Reply

Marsh Posté le 01-07-2004 à 13:38:25    

Par exemple, quelques drivers ODBC pour Unix.
http://www.minisoft.com/pages/midd [...] _UNIX.html

Reply

Marsh Posté le 01-07-2004 à 13:42:24    

Arjuna a écrit :

ODBC est tout à fait supporté sur d'autres systèmes que Windows...


bon, je retire ma remarque. désolé :/
 
mais le reste est vrai : les drivers JDBC sont des drivers dédiés à une base. On peut, si on le souhaite passer par un pont JDBC-ODBC, mais c'est pas conseillé : ca tue les perfs.


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 01-07-2004 à 14:06:48    

OK. Je pensais (peut-être que c'était vrai au tout début) que JDBC passait forcément par ce pont.
 
Quand j'étais étudiant, un groupe avait décidé de faire une appli en Java qui tapait dans une base access, et c'est la seule technique qu'ils avaient trouvé. Perso j'ai jamais fait de Java (enfin si, un coup, sauf que ça a planté et ça a niqué mon secteur de boot alors j'y ai plus jamais touché :D)

Reply

Marsh Posté le 01-07-2004 à 14:32:48    

Arjuna a écrit :

OK. Je pensais (peut-être que c'était vrai au tout début) que JDBC passait forcément par ce pont.


non [:spamafote]
 

Arjuna a écrit :


Quand j'étais étudiant, un groupe avait décidé de faire une appli en Java qui tapait dans une base access,


ouais, avec access c'est la merde : y a des drivers JDBC, mais ils sont tous payant je crois ...
 

Arjuna a écrit :

. Perso j'ai jamais fait de Java (enfin si, un coup, sauf que ça a planté et ça a niqué mon secteur de boot alors j'y ai plus jamais touché :D)


[:le kneu]
 
balèze !  [:netbios]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 01-07-2004 à 14:37:58    

Bah j'ai écrit un programme (Hello World) avec Visual J++, et j'ai voulu le faire tourner avec la machine de sun. Boum :sweat:
 
Le pire, c'est que je venais de passer la matinée à réinstaller NT4 exprès pour avoir une jolie machine toute propre pour faire du java...
 
J'ai réinstallé, j'ai remis IIS et j'ai continué à faire de l'ASP, c'est plus stable :D

Reply

Marsh Posté le 01-07-2004 à 15:06:12    

Arjuna a écrit :

Bah j'ai écrit un programme (Hello World) avec Visual J++


ha ouais d'accord, tu dis tout en 2 fois :D
 
et puis bon, du J++ ca a jamais été vraiment du java ...
 

Arjuna a écrit :

J'ai réinstallé, j'ai remis IIS et j'ai continué à faire de l'ASP, c'est plus stable :D


ouais mais là non quoi :o


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 01-07-2004 à 15:16:46    

benou a écrit :

ha ouais d'accord, tu dis tout en 2 fois :D
 
et puis bon, du J++ ca a jamais été vraiment du java ...


Ben à l'époque j'étais jeune et con... Maintenant je suis moins jeune [:canaille]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed