Accueil > Forum > > > > Problème de Pilote Base de Données
Problème de Pilote Base de Données
jeudi 2 novembre 2006 à 22:29:54 |
Problème de Pilote Base de Données

Maiku
|
Salut Je débute en java, et j'essaye de travailler avec une base de données pour un projet, mais je me heurte à l'erreur suivante : - Lorsque je compile le programme : [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié - Lorsque j'affiche un MsgBox avec l'erreur java.lang.NullPointerException Mon Code est le suivante : [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié Si quelqu'un peut m'aider? Merci d'Avance Maiku
|
|
vendredi 3 novembre 2006 à 14:42:23 |
Re : Problème de Pilote Base de Données
|
vendredi 3 novembre 2006 à 14:43:22 |
Re : Problème de Pilote Base de Données

lafolle24320
|
et sinon avec plus de précision tu travailles avec quoi comme BD?
lafolle
|
|
vendredi 3 novembre 2006 à 22:56:04 |
Re : Problème de Pilote Base de Données

Maiku
|
Salut
Dsl j'ai pas vu que j'avais oublié de mettre le code correspondant , le voila :
import java.net.*; import java.sql.*; import java.lang.*; import java.io.*; import javax.swing.*; import java.awt.*; import java.awt.event.*;
try { Objet = u1.ExecuterConnection(); Resultat = u1.ExecuterRequeteSelect("Select NomAdr,Mdp From Adresse", Objet); while(Resultat.next()) { this.Adr.addItem(Resultat.getString("NomAdr")); } this.Mdp.setText(Resultat.getString(2)); } catch(Exception e) { //on cherche un objet de type Frame contenant l'applet Frame fr=null; Component parentCourant=this; while (parentCourant!=null && fr==null) { if (parentCourant instanceof Frame) fr=(Frame)parentCourant; else parentCourant=parentCourant.getParent(); } MsgBox.affMsg(fr, e.toString()); }
Il s'agit d'une base de données Acces. Merci d'Avance Maiku
|
|
dimanche 5 novembre 2006 à 17:02:12 |
Re : Problème de Pilote Base de Données

lafolle24320
|
Bonjour, oui çà ok. Mais il faut que tu crée ton lien ODBC avec le panneau de config /outils d'administration/Sources de données. En fait le lien ODBC va permettre de transcrire tes requêtes/ bonne prog lafolle
|
|
dimanche 5 novembre 2006 à 17:18:47 |
Re : Problème de Pilote Base de Données

Maiku
|
Salut
Ben je l'ai fait pourtant. Comme c'est la première fois que je faisais du java, en plus avec une base de données, j'avais vu un tutorial assez simple qui en parlait. Cette étape y figurait, peut etre y a t il un problème dans le nom que j'ai mis alors . Je regarderais ça et te tiendrais au courant si j'ai le net à mon appart, sinon je te dirais si c'est resolu mardi soir.
Maiku
|
|
mardi 7 novembre 2006 à 23:34:26 |
Re : Problème de Pilote Base de Données

Maiku
|
Salut
Problème Résolu. Tu avais raison un problème dans le nom que j'avais précisé dans la souce Odbc. Maintenant j'ai un autre problème : après ma première requete, je dois en executer une seconde, donc j'ai compris qu'il fallait fermer le resultSet pour executer une nouvelle requete, pourtant une erreur sql survient tjrs et me dit que le ResultSet est fermé, alors que j'utilise une nouvelle requete.
Je te met mon code :
try { //On se connecte à la base de données Objet = u1.ExecuterConnection(); Resultat = u1.ExecuterRequeteSelect("Select NomAdr From Adresse", Objet); while(Resultat.next()) { this.Adr.addItem(Resultat.getString("NomAdr")); } Resultat.close(); Resultat = u1.ExecuterRequeteSelect("Select Mdp From Adresse where NomAdr="+this.Adr.toString(), Objet); while(Resultat.next()) { this.Mdp.setText(Resultat.getString("Mdp")); } Resultat.close(); } catch(Exception e) { MsgBox.affMsg(fr, e.toString()); }
U1 correspond à un Objet de Type Base de données, une bibliothèque de classe que j'ai importé dans le Projet, voici le code des deux méthodes que j'utilise ainsi que ses attributs :
// Les Attributs
private String NomUrl="jdbc:odbc:"; private Connection con = null; private ResultSet Resultat = null;
public Statement ExecuterConnection() { Statement Objet=null; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); con = DriverManager.getConnection(NomUrl,"",""); Objet = con.createStatement(); } catch(Exception e) { System.out.println(e.getMessage()); } return Objet; } public ResultSet ExecuterRequeteSelect(String Requete,Statement Objet) { try { Resultat = Objet.executeQuery(Requete); } catch(SQLException e) { System.out.println(e.getNextException()); } return Resultat; }
Si dans le code du projet, la connexion et l'oBjet Statement sont pas fermés, c'est parce qu'ils seront fermé lorsque l'utilisateur quittera l'application. Merci de ton aide d'avance
Maiku
|
|
mercredi 8 novembre 2006 à 10:36:36 |
Re : Problème de Pilote Base de Données

Vitty
|
Bonjour,
Ton problème vient de ton premier resultSet.close(). Tu ne peux ouvrir qu'un seul resultSet sur un même statement.
Tu devrais plutôt utiliser un statement par requête à exécuter : tu crées le statement, tu exécutes ta requête, tu traites le résultat de ta requête, et tu fermes ton statement. Remarques : - la fermeture de ton statement ferme implicitement ton resultSet, - si tu ne fermes pas tes statements, tu risques d'avoir une erreur du type "nombre maximal de curseur atteint". A chaque ouverture de statement, tu ouvres un curseur sur la base. Le nombre total de curseur pouvant être ouvert est limité.
En espérant que ca puisse t'aider ;)
|
|
mercredi 8 novembre 2006 à 12:08:37 |
Re : Problème de Pilote Base de Données

Maiku
|
Salut
Ben pourtant j'avais vu qu'on pouvait utiliser un ResultSet pour plusieurs requetes. Si on doit récréer un Objet Statement à chaque fois, ca veut dire qu'on refait la connexion à la Base de Donnees non ?
On peut pas utiliser le même ResultSet pour toutes les Requetes donc ? Merci d'Avance
Maiku
|
|
mercredi 8 novembre 2006 à 13:17:21 |
Re : Problème de Pilote Base de Données

Vitty
|
Tu peux très bien utiliser un seul statement pour plusieurs requêtes : Créer statement requête 1 requête 2 Fermer statement Mais dans ce cas, il ne faut pas fermer le ResultSet.
Ou sinon : Créer statement 1 requête 1 Fermer statement 1 Créer statement 2 requête 2 Fermer statement 2
Si je reprends ton code : con = DriverManager.getConnection(NomUrl,"",""); // création de la connexion Objet = con.createStatement(); // création du statement
A chaque fois que tu crées un statement, tu n'es bien entendu pas obligé de recréer la connexion, mais pour ce faire, tu dois revoir ta méthode "public Statement ExecuterConnection()"
|
|
Cette discussion est classée dans : données, gestionnaire, microsoft, pilote, pilotes
Répondre à ce message
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : COURRE : COUR par barhoum1111
Cliquez pour lire la suite par barhoum1111
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|