scania113h Posté(e) 23 août 2013 Share Posté(e) 23 août 2013 (modifié) Bonjour à tous, ayant découvert le développement android récepment via eclipse, j'essaye depuis quelques jours d'établir une connection entre mon application android et sql server, j'ai vu dans certains forums qu'il faut utiliser un pilote jtds, donc j'ai téléchargé la dernière version 1.3.1 et j'ai utilisé le code suivant : monbtn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.i("Android"," MySQL Connect Example."); Connection conn = null; try { String driver = "net.sourceforge.jtds.jdbc.Driver"; //Class.forName(driver).newInstance(); Class.forName(driver); Log.i("Android"," pilote ok."); String username = "sa"; String password = "123456"; conn = DriverManager.getConnection(connString,username,password); Log.w("Connection","open"); Statement stmt = conn.createStatement(); ResultSet reset = stmt.executeQuery("select * from personne"); //Print the data to the console while(reset.next()){ Log.w("Data:",reset.getString(1)); // Log.w("Data",reset.getString(2)); } conn.close(); } catch (Exception e) { Log.w("Error connection","" + e.getMessage()); } } }); } à l'execution et en appuyant sur le bouton il me sort l'erreur suivante : ERROR CONNECTION net.sourceforce.jtds.jdbc.Driver Merci d'avance pour votre aide. Modifié 23 août 2013 par scania113h Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lannig Posté(e) 23 août 2013 Share Posté(e) 23 août 2013 Je ne vois nulle part dans cet extrait de code le nom du serveur SQL auquel tu veux te connecter, donc sans aller chercher plus loin, je pense qu'il manque quelque chose. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
scania113h Posté(e) 23 août 2013 Auteur Share Posté(e) 23 août 2013 (modifié) bonjour LANNIG et merci pour votre réponse, en fait, j'ai du par inadvertance supprimer cette ligne lors de la copie du code, donc voici le code : monbtn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.i("Android"," MySQL Connect Example."); Connection conn = null; try { String driver = "net.sourceforge.jtds.jdbc.Driver"; //Class.forName(driver).newInstance(); Class.forName(driver); Log.i("Android"," pilote ok."); //test = com.microsoft.sqlserver.jdbc.SQLServerDriver.class; String username = "sa"; String password = "123456"; conn = DriverManager.getConnection(connString,username,password); Log.w("Connection","open"); Statement stmt = conn.createStatement(); ResultSet reset = stmt.executeQuery("select * from personne"); //Print the data to the console while(reset.next()){ Log.w("Data:",reset.getString(1)); // Log.w("Data",reset.getString(2)); } conn.close(); } catch (Exception e) { Log.w("Error connection","" + e.getMessage()); } } }); } Modifié 23 août 2013 par scania113h Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 23 août 2013 Share Posté(e) 23 août 2013 L'url JDBC pour identifier ton serveur n'apparait toujours pas dans ton extrait de code (d'ailleurs, à ce sujet, pourrais-tu stp utiliser les balises [ code ] pour tes extraits de code, cela rendrait ton sujet plus lisible) Pour ce qui est de la cause de l'erreur, difficile de dire sans avoir plus de détail sur cette erreur; tu pourrais déjà afficher plus en détail dans les logs l'erreur se produisant, et nous indiquer ensuite ce qui s'y affiche catch(Exception e) { Log.w("Erreur connexion", e.getMessage(), e); } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
scania113h Posté(e) 23 août 2013 Auteur Share Posté(e) 23 août 2013 bonjour, en fait, j'ai remarqué que comme s'il y'a quelque chose dans ce site qui filtre la ligne qui contient l'adresse IP et le numéro de port du serveur.... c'est bizzare... voici le log géneré suite à l'exécution : 08-23 14:59:26.952: W/Error connection(309): net.sourceforge.jtds.jdbc.Driver 08-23 14:59:26.952: W/Error connection(309): java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver 08-23 14:59:26.952: W/Error connection(309): at java.lang.Class.classForName(Native Method) 08-23 14:59:26.952: W/Error connection(309): at java.lang.Class.forName(Class.java:235) 08-23 14:59:26.952: W/Error connection(309): at java.lang.Class.forName(Class.java:182) 08-23 14:59:26.952: W/Error connection(309): at com.example.rachid_andro.MainActivity$3.onClick(MainActivity.java:90) 08-23 14:59:26.952: W/Error connection(309): at android.view.View.performClick(View.java:2408) 08-23 14:59:26.952: W/Error connection(309): at android.view.View$PerformClick.run(View.java:8816) 08-23 14:59:26.952: W/Error connection(309): at android.os.Handler.handleCallback(Handler.java:587) 08-23 14:59:26.952: W/Error connection(309): at android.os.Handler.dispatchMessage(Handler.java:92) 08-23 14:59:26.952: W/Error connection(309): at android.os.Looper.loop(Looper.java:123) 08-23 14:59:26.952: W/Error connection(309): at android.app.ActivityThread.main(ActivityThread.java:4627) 08-23 14:59:26.952: W/Error connection(309): at java.lang.reflect.Method.invokeNative(Native Method) 08-23 14:59:26.952: W/Error connection(309): at java.lang.reflect.Method.invoke(Method.java:521) 08-23 14:59:26.952: W/Error connection(309): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 08-23 14:59:26.952: W/Error connection(309): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 08-23 14:59:26.952: W/Error connection(309): at dalvik.system.NativeStart.main(Native Method) 08-23 14:59:26.952: W/Error connection(309): Caused by: java.lang.NoClassDefFoundError: net.sourceforge.jtds.jdbc.Driver 08-23 14:59:26.952: W/Error connection(309): ... 15 more 08-23 14:59:26.952: W/Error connection(309): Caused by: java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver in loader dalvik.system.PathClassLoader[/data/app/com.example.rachid_andro-2.apk] 08-23 14:59:26.952: W/Error connection(309): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 08-23 14:59:26.952: W/Error connection(309): at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 08-23 14:59:26.952: W/Error connection(309): at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 08-23 14:59:26.952: W/Error connection(309): ... 15 more je vais réessayer d'inserer le code via des cotes de codes : Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lannig Posté(e) 23 août 2013 Share Posté(e) 23 août 2013 java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver Ca sent le fait que cette interface n'est tout simplement pas (ou mal) installée, ça, non ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
scania113h Posté(e) 23 août 2013 Auteur Share Posté(e) 23 août 2013 pour l'installation du pilote jdts, j'ai importé le jtds-1.3.1.jar dans le dossier lib de mon projet ... donc je ne sais pas si c'est suffisant ou alors il faut faire autre chose ... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 26 août 2013 Share Posté(e) 26 août 2013 Le problème avec l'exception ClassNotFountException, c'est qu'elle n'est pas toujours explicite. Cela peut signifier que la classe en question n'a pas été trouvée (mais cela ne semble pas être le cas, si tu as bien mis le jar dans le projet). Mais cela peut aussi dire que la classe n'a pas pu être chargée parce qu'une classe dont elle a besoin n'a pu être trouvée; le pilote jdbc n'a-t-il pas besoin d'un autre jar en dépendance ? que dit la doc du pilote jdbc ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
elmarco06 Posté(e) 26 août 2013 Share Posté(e) 26 août 2013 Bonjour, As-tu vérifié que ton jar est bien pris dans ton classpath. Si tu fais CTRL+SHIFT+H et que tu tapes Driver, voies-tu bien la classe du jar de ton projet apparaitre ? Sinon dans ton classpath (clic droit sur le projet puis properties puis java build path)as -tu vérifié que dans l'onglet order and export, ton jar apparait bien et qu'il est coché ? Il ne suffit plus de le mettre dans lib mais il faut aussi indiqué que la lib doit être exportée avec l'appli. Marc Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
scania113h Posté(e) 26 août 2013 Auteur Share Posté(e) 26 août 2013 bonjour à tous, j'ai fais CRTL+SHIFT+H et je tape Driver , et je vois trés bien la classe du jar apparaitre. ensuite j'ai fais prpriété sur mon projet, je suis allé ensuite sur "java build path" puis "order and export", et j'apperçois mon jar dans la liste et c'est coché. cordialement. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
elmarco06 Posté(e) 26 août 2013 Share Posté(e) 26 août 2013 bon il semblerait qu'il y ait une incompatibilité jtds version 1.3 sur android. essaie avec la version 1.2.5 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.