Probleme sql avec INSERT VALUES

Fermé
PBAUDRU - Modifié par jipicy le 13/04/2010 à 09:19
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 19 avril 2010 à 10:32
Bonjour les gars, pouvez-vous m'aider svp ?

J'ai eu un message d'erreur, voir ci-dessous:
Erro :L'instruction n'a pas renvoyé le jeu de résultat.
com.microsoft.sqlserver.jdbc.SQLServerException: L'instruction n'a pas renvoyé le jeu de résultat.


Voici le code où j'ai le problème (at DB.connectionadd(DB.java:189)):

rsadd = stmt.executeQuery("INSERT INTO CANDIDAT VALUES" + "('"+nom+"'," +
"'"+prenom+"'," +
"'"+commentaire+"'," +
"'"+cheminCV+"'," +
"'"+dateCV+"'," +
"'"+motcles1+"'," +
"'"+motcles2+"'," +
"'"+motcles3+"'," +
"'"+motcles4+"'," +
"'"+motcles5+"');");

System.out.println("Création candidat OK");

while (rsadd.next()){//posiciona o cursor na primeira linha
System.out.println("Création OK rsnext");

}
}

Dans mon cas le 'print' "System.out.println("Création candidat OK");" n'est même pas executé.

Cordialement. Pierre.
A voir également:

3 réponses

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
Modifié par kij_82 le 13/04/2010 à 11:19
Bonjour,

As-tu essayé d'exécuter ta requête directement depuis l'interface de ta base de données pour avoir un message d'erreur plus précis ? Si tu as la possibilité de le faire, tu verras que ça aide souvent.

Sinon, ton erreur vient certainement du fait que ta requête n'est pas correct.
Pour les insert, il faut - je crois - préciser le nom des champs dans la requête, comme suit par exemple:

INSERT INTO CANDIDAT ('id','label') VALUES ('xx','xx') 


Prend en compte cette formulation, test et dis nous si cela résolve ton problème.


~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~
0
Bonjour kij_82, ça marche bien maintenant !!!!

J'ai une autre question svp, j'ai créé mon fichier .JAR dans eclipse.......mais quand je vais le tester je n'arrive pas a acceder la DB(SQL server). J'ai peut-être oublié de selectionner quelque chose au momment de la création du fichier JAR, avez vous svp une suggestion ?

Merci beaucoup ! Pierre.
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
15 avril 2010 à 11:37
Re,

Pour ce qui est de ton problème, il n'y a pas 36 raisons.

Grosso modo:
Cela doit venir de la façon dont tu lance ta classe principale (via ce .jar) et donc doit être due à un problème de classpath au lancement. (puisque tu dis que ça fonctionne bien si tu exécute via Eclipse qui lui doit avoir l'ensemble des .jar nécessaire à l'éxecution du programme dans son classpath (local au projet ou local à Eclipse))

Précisément, ce qu'il faut faire pour en être sûr:
Déjà il faut que je comprenne ce que tu met exactement dans ton .jar. Je suppose que c'est bien les sources compilées de ton programme.

Ensuite, que fais-tu exactement de ce .jar ? Tu le lance / exécute comme ça, via une ligne de commande ? Peux-tu en dire plus / écrire la ligne de commande s'il y en a une ?
As-tu pensé à mettre à jour le classpath pour y inclure ton jar lors du lancement de ta classe principale (via un script qui met à jour le classpath puis lance ta classe par exemple) ?
Est-ce que dans ce même classpath, tu as bien inclus les .jar / bibliothèque nécessaire à l'utilisation de la base de données ?

J'attends tes réponses là dessus, si ça ne fonctionne pas alors que ça marche sous
0
Salut kij_82, merci beaucoup pour votre réponse !!!
Bon dans mon .JAR j'ai uniquement 3 classes, una avec le MAIN et où j'ai défini mon JFrame avec les JButtons, JList,Jcombobox,etc..., une autre qui accède la DB (SQL server) et une dernière où j'ai défini un type qui correspond à une table dans ma DB.

Pour lancer mon application je fait double click sur mon .JAR, mais j'ai le problème que j'ai mentioné ci-dessus. L'objectif c'est d'avoir simplement un .JAR pour l'instaler sur le PC de mon client. L'application n'est pas enorme, juste un JFrame et les deux autres classes.

Je n'ai pas mis le classpath à jour, comment le faire svp ? Je suis un débutant alors il y a beaucoup de choses que je dois apprendre encore. Je ne sais pas si j'ai besoin d'autres .JAR pour executer mon application, mais il y a une pour le 'SQLJDBC'.

J'ai de nouveau essayé et j'ai eu les erreurs ci-dessous:
JAR creation failed. See details for additional information.
Resource is out of sync with the file system: '/DBCONNNECTION/lib/CREATION_CANDIDAT_EUREKA.jar'.

Merci beaucoup !! Pierre.
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
15 avril 2010 à 17:56
Re,

Alors si tu souhaite faire un Jar de ton application pour qu'elle puisse fonctionner lorsqu'on le copie/colle quelque part ce n'est pas un Jar des sources qu'il faut, c'est un Jar dit "applicatif".
En gros, ce Jar applicatif doit contenir tout ce dont ton application à besoin pour s'exécuter correctement.

Dans ton cas, de quoi ton application à besoin (et qui est certainement configurer dans ton éclipse pour que ton application s'exécute bien sous Eclipse) ?

Tu as besoin (par rapport à ce que tu viens de me dire):
- du Jar des sources de ton programme (ce que tu as donc déjà fait)
- de tous les Jar ou archives des bibliothèques externes que tu programme utilise. Dans tons cas il s'agit du Jar pour l'utilisation de JDBC.
- de tous les fichiers de configuration utilisés par ton programme (s'il y en a, dans ton cas je pense que non puisque tu n'en a pas parlé)

Comment faire :
- Créer un répertoire 'delivery'
- Dans ce répertoire, créer en d'autre nommé 'lib','config'.
- A l'intérieur du répertoire 'lib', tu copie / colle tous les Jar (y compris celui que te tes sources du projet) que ton application utilise
- A l'intérieur du répertoire 'config', copie / colle tous les fichiers de configuration utilisé par l'application (pour toi tu n'y met rien)
- A l'intérieur du répertoire 'delivery', créer un fichier de script (BATCH pour window, SHELL pour unix / linux) nommé comme tu veux ('start.bat' pour window ou 'start.sh' pour unix / linux par exemple)
- Edite le fichier ainsi créé, il faut maintenant scripter différentes choses pour lancer la classe main de ton programme:

1- Nous allons définir quelques variables : répertoire de travail (work dir), répertoire de librairie (lib dir) et répertoire de config (config dir)
set WORK_DIR=.
set LIB_DIR=%WORK_DIR%\lib
set CONFIG_DIR=%WORK_DIR%\config


La première ligne sert à dire : mon répertoire de travail est le répertoire courant d'exécution du script actuel (celui qu'on édite et sur lequel on travaille). Dans notre cas, ce répertoire courant sera donc le répertoire 'delivery'
La seconde ligne (et la troisième) définisse l'endroit où se situe les répertoires de configuration et de librairie par rapport au répertoire de travail.

2- Il faut ensuite créer un classpath 'local' dans lequel nous allons indiquer l'endroit où se trouve les librairies et fichiers de configuration utiles à l'application:
set ORIPATH=%LIB_DIR%\MonApplication.jar;%LIB_DIR%\JDBC.jar


Il te faut remplacer le nom des Jar (en gras) par ceux que tu utilise bien entendu ;) Le nom ici ne sont qu'à titre d'exemple.

3- Il faut mettre à jour le classpath de ton système d'exploitation pour que ces chemins d'accès soient connus du système lors de l'exécution de ta classe Java principale:
set CLASSPATH=%CLASSPATH%;.;%ORIPATH%;%CONFIG_DIR%


Attention: CLASSPATH est une variable système (mot réservé), il ne faut pas faire n'importe quoi dessus.

4- Reste ensuite à lancer la classe java principale, avec des arguments si elle en nécessites:
java org.bidule.blabla.package.MaClasseMain Argument1 Argument2 ...


L'ensemble du code du fichier script pour rappel:
set WORK_DIR=.
set LIB_DIR=%WORK_DIR%\lib
set CONFIG_DIR=%WORK_DIR%\config

set ORIPATH=%LIB_DIR%\MonApplication.jar;%LIB_DIR%\JDBC.jar

set CLASSPATH=%CLASSPATH%;.;%ORIPATH%;%CONFIG_DIR%

java org.bidule.blabla.package.MaClasseMain Argument1 Argument2 ...



Voilà pour ce qui est de la mise en place de la structure de livraison de ton application. Si tu veux tester si ton application fonctionne ainsi, double clic sur le script que l'on vient de coder pour la lancer, et regarde si ça fonctionne (cas contraire, indique moi les erreurs)

Si tu souhaite ensuite livrer cette application à quelqun, rien ne t'empêche de faire un Jar du contenu du répertoire 'delivery' et de l'envoyer à cette personne.
Il faudra alors qu'elle unjar / dézip cette archive, et lance le programme en double cliquant sur le fichier de script.

0
Merci beaucoup kij_82,

J'ai simplement généré des Runnable .JAR files(export/Runnable JAR file)......et j'arrive maintenant a éxecuter l'application sans problèmes....mais après l'avoir fait j'ai eu besoin de modifier encore mon code source.....et surprise pour moi un débutant, a chaque fois que j'executer mon programme j'avais l'ancienne version qui était éxecutée au lieu de la version avec les modifications.

Comment svp régler le problème ?

Cordialement, Pierre.
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
19 avril 2010 à 10:32
Je pense qu'il faut que tu fasse un refresh de ton projet (après compilation) avant de générer le Runnable Jar.
Il faut savoir qu'Eclipse build/lance (si tu as des serveurs) à partir de ce qu'il "voit" dans ton interface (si on peut dire ça comme ça)

Pour être sur de ne pas te tromper, utilise ctrl+S pour sauvergarder puis ctrl+B pour compiler, à chaque fois que tu fais une modification, normalement ça rafraichit aussi le projet, si mes souvenirs sont bons. Au pire tu refresh via F5 avant de builder ton Jar.
0