Obtenir le resultat d'une requete et le nombre de reponse [RESOLU] - Java - Programmation
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é.
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
Marsh Posté le 01-07-2004 à 11:49:43
Si, c'est possible...
Code :
|
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.
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
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. |
, en 1.0 peut-etre mais en 2.0 justement l'utilité du TYPE_FORWARD_ONLY prend tout son sens...
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. |
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)
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 ...
Marsh Posté le 01-07-2004 à 13:34:04
ODBC est tout à fait supporté sur d'autres systèmes que Windows...
Marsh Posté le 01-07-2004 à 13:38:25
Par exemple, quelques drivers ODBC pour Unix.
http://www.minisoft.com/pages/midd [...] _UNIX.html
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.
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é )
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
Arjuna a écrit : |
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é ) |
balèze !
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
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
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
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 |
ouais mais là non quoi
Marsh Posté le 01-07-2004 à 15:16:46
benou a écrit : ha ouais d'accord, tu dis tout en 2 fois |
Ben à l'époque j'étais jeune et con... Maintenant je suis moins jeune
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