Requetes d'insertion & Suppression ds un BD Access

rakyouna Messages postés 54 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 10 août 2008 - 13 juil. 2005 à 16:07
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 - 8 déc. 2005 à 12:29
Slt à tous,

J'ai un pb au niveau du resultat de requetes d'insertion et de suppression d'enregisrements d'une table de ma Base de Données Access.
Après l'exécution des requetes dans mon programme JAVA, j'aurai aucune modification au niveau des enregistrements.
Alors que l'exécution des mêmes requestes directement dans Microsoft Access, ça marche bien.

RS = S.executeQuery("INSERT INTO SMSJoueurs ( N°, NumSource, NumDestination, Type, Question, Reponse ) VALUES (14, '21863185', '1848', 'Text', 'Q3', 'R3.2')");

je sais pas quesqu'il faut faire, ou quel est le pb?

19 réponses

cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
14 juil. 2005 à 00:22
Salut
Il faut que tu utilises la commande .executeUpdate("INSERT [Blablabla]");
.executeQuery ne fonctionne qu'avec les commande SQL "SELECT ......."
Meme chose pour les commandes SQL de suppression.

Bonne prog ;)

AbriBus
_______________________________
La direction de la RATP vous rappelle que la
dégradation d'AbriBus est passible de lourdes
sanctions.
Ne dégradez pas les AbriBus. L'AbriBus est ton ami.
0
rakyouna Messages postés 54 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 10 août 2008 1
14 juil. 2005 à 10:08
Salut Abribus,
J'ai changé mon code en utilisant executeUpdate(...), mais encore pas de changement au niveau de la base de données .
0
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
14 juil. 2005 à 10:44
...alors ca par exemple... et Eclipse ne te genere pas d'exception rien...?!!??
J'ai jamais eut de probleme comme ca... les requettes SELECT fonctionnent bien ?
tu peux toujours tenter d'utiliser la commande .execute("COMANDESQL") mais je suis pas convaicu...

AbriBus
_______________________________
La direction de la RATP vous rappelle que la
dégradation d'AbriBus est passible de lourdes
sanctions.
Ne dégradez pas les AbriBus. L'AbriBus est ton ami.
0
rakyouna Messages postés 54 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 10 août 2008 1
14 juil. 2005 à 10:56
les requetes SELECT fonctonnent bien, et pas de message d'erreur pour les requetes d'insersion et suppression, et malgrè ça pas de resultat !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
14 juil. 2005 à 11:09
Je pense que le probleme vient de la requette SQL elle meme... je dis ca parceque 1 tu est bien connecté a ta base de données et les communications passent bien (pour preuve les commandes SELECT) et 2 tu n'as pas de message d'erreur a l'execution de la commande SQL de suppression ou d'insersion... est tu sure de tes requettes ? je sais que tes requettes sont sensées fonctionner (puisque qu'elles fonctionnent avec Access) mais la je vois vraiment pas...

AbriBus
_______________________________
La direction de la RATP vous rappelle que la
dégradation d'AbriBus est passible de lourdes
sanctions.
Ne dégradez pas les AbriBus. L'AbriBus est ton ami.
0
rakyouna Messages postés 54 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 10 août 2008 1
14 juil. 2005 à 11:47
y a-t-il de modes d'ouverture de la BD?
peut-être ma base est ouvert en mode lecture seule.
J'ai utilsé la methode getConnection avec les paramètres suivants: url, login, password :

connect = DriverManager.getConnection("jdbc:odbc:" + DB, uid, mdp);

Mais cette methode peut être utilisée avec les paramètres: url, Properties.
Je sais pas quelle valeur dois-je donner au paramètre Properties. Et si j'utilise ses paramètres où dois-je spécifier le nom utilisateur et le mot de passe de la BD
0
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
14 juil. 2005 à 12:07
Alors je crois si ca marche en Java comme en Vb qu'il n'y a besoin de donner un login/password que s'il y a un mot de passe dans la base Access (c'est a dire que s'il y en a pas, il n'y a pas besoin d'expliciter qu'il n'y en a pas). La connection à la base de donnees est ouverte en lecture/ecriture... c'est le compte utilisé pour s'y connecter qui peut eventuellement restreint (avec Oracle ca se fait en fonction des commandes par exemple "tel utilisateur ne peut utiliser que la commande SELECT").
Bref, je sais bien que tout ca ne regle pas ton probleme mais comme je te le suggerais, peut etre devrais tu voir au niveau SQL que la requette arrive bien a la base et que celle-ci l'interprete convenablement. Je sais pas quoi te suggerer de plus...

AbriBus
_______________________________
La direction de la RATP vous rappelle que la
dégradation d'AbriBus est passible de lourdes
sanctions.
Ne dégradez pas les AbriBus. L'AbriBus est ton ami.
0
rakyouna Messages postés 54 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 10 août 2008 1
14 juil. 2005 à 13:50
La requete suivante a bien marché avec valeur de retour n=-1:

n = S.executeUpdate("CREATE TABLE Clients ( Nom varchar(10) NOT NULL, Question varchar(10), PRIMARY KEY (Nom))");

Alors que la requete :

updateString = connect.prepareStatement("INSERT INTO Clients (Nom, Question ) VALUES (?, ?)");
updateString.setString(1,"MyName");
updateString.setString(2,"MyQuestion");
n = updateString.executeUpdate();

n'a aboutit à aucun resultat et la valeur de retour était n=1.
c pas un problème de compatibilité de types? car les champs Nom et Question, par exemple, sont enregistrés dans la BD Access sous types Texte et non pas varchar.
0
rakyouna Messages postés 54 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 10 août 2008 1
14 juil. 2005 à 16:28
Les mêmes requêtes qui n'ont pas marché avec BD Access, ont marché avec BD MySQL.
Vraiment j'ai pas trouvé quel est le pb avec Access !
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
14 juil. 2005 à 18:24
Salut,

le problème avec Access c'est que ce n'est pas un SGBD et que les
drivers sont un peu de la bricole souvent d'ailleurs il passe par ODBC
non ???

Tu utilises quel driver ?? Il se peut que l'update n'ai pas encore été implémenté ....



++
0
rakyouna Messages postés 54 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 10 août 2008 1
14 juil. 2005 à 18:47
J'utilse le driver "sun.jdbc.odbc.JdbcOdbcDriver"
Qd l'update sera implémenté alors ?
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
15 juil. 2005 à 00:16
Salut,

je ne me suis jamais servi d'un driver Access et pour cause j'utilise
de véritable SGBD ... mais surement que tes besoins ne sont pes les
mêmes que les miens ! ;-)



En revanche pour ton problème, si avec le même code cela à marcher pour
un mysql et que cela ne marche pas avec access c'est que le prob vient
surement de ton driver. Va sur le site sur lequel tu l'as téléchargé et
renseigne toi sur la question ... je ne pourrais pas t'aider plus et je
pense que c'est le meilleur moyen d'avancer sur ton prob ..



++
0
Blue_du_31 Messages postés 2 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 20 juillet 2005
19 juil. 2005 à 18:52
Bonjour les gens,



moi aussi j'ai le même problème : les select fonctionnent bien, mais
les insert ne marchent pas (pas d'erreur Java, code de retour = 1, MAIS
rien dans mon fichier Excel).





Je sais pas pourquoi ça veut pas !!! mais je cherche et je post la solution si je résoud mon pb.

PS : je suis obligé d'utiliser du Excel, spa ma faute
0
rakyouna Messages postés 54 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 10 août 2008 1
20 juil. 2005 à 15:27
Salut,
Désolé, j'ai pas travaillé avec Excel.
Pour mon problème avec Access, j'ai pas arrivé à le resoudre, j'ai utilisé une base de données MySQL au lieu d'une base Access.
0
Blue_du_31 Messages postés 2 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 20 juillet 2005
20 juil. 2005 à 15:43
Oups, j'avai lu Excel...



Mais j'ai réussi depuis à insérer des données dans mon fichier Excel avec POI/HSSF

voir sur : http://jakarta.apache.org/poi/hssf/.



Ca marche bien, et on peut faire beaucoup de choses avec.



Voilà !
0
misterzinzin Messages postés 112 Date d'inscription vendredi 27 octobre 2000 Statut Membre Dernière intervention 26 janvier 2011 2
5 déc. 2005 à 19:59
je sais envoyer des donnée dans acces (sous sun one studio)



//ceci marche

PreparedStatement pstmt=con.prepareStatement(

"INSERT INTO reservation (type,nomClient)"

+" VALUES (?,?)");

pstmt.setInt(1,unbmat.type);

pstmt.setString(2,unbmat.nomClient);

pstmt.executeUpdate();



//mais ceci ne marche pas

/*

PreparedStatement pstmt=con.prepareStatement(

"INSERT INTO reservation (type,nomClient,date-heure)"

+" VALUES (?,?,?)");

*/

pstmt.setInt(1,unbmat.type);


pstmt.setString(2,unbmat.nomClient);

//avec aucune des ligne ci dessous..........


//Date ladate = new Date(2000,10,3);//Date.valueOf(unbmat.date);

//pstmt.setDate(3,ladate);

//pstmt.setTimestamp(3,new Timestamp(2005,10,25,1,1,0,0));

//pstmt.setString(3,"26/2/83 10:10");




le fait est que le champ date-heure est un date/heure dans acces et que
je n'arrive pas a convertir une chaine de caractere pour l'utiliser
dans ma requete...



avez vous des solution a ce probleme ?




moi, le seul, l'unique, ZinZin
0
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
5 déc. 2005 à 21:45
Salut mister zinzin...
As tu essayé avec les fonctions de conversion du package SQL ? (je crois que c'est java(x?).sql.*
en outre, je sais que certaines base sont particulierement chiante avec les format de date (version US / version FR)... a creuser si ce n'est deja fait.
sinon, bah moi j'ai jamais utilisé que des commandes simples type .executeQuery et .executeUpdate
Bon courrage & bonne prog !!!

AbriBus
_______________________________
La direction de la RATP vous rappelle que la
dégradation d'AbriBus est passible de lourdes
sanctions.
Ne dégradez pas les AbriBus. L'AbriBus est ton ami.
0
misterzinzin Messages postés 112 Date d'inscription vendredi 27 octobre 2000 Statut Membre Dernière intervention 26 janvier 2011 2
8 déc. 2005 à 12:25
g trouve la solution... date-heure ne convient pas tres bien pour un nom de colone en sql (mais acces l'accepte)

j'ai simplement renomé la colone en ladate et ca marche ;-)



ps: j'envois la dote comme une chaine de caractere et ca passe nickel :-)

moi, le seul, l'unique, ZinZin
0
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
8 déc. 2005 à 12:29
meme avec le package SQL ? normalement les champs date/heure doivent etre "normalisés" parceque sur un champs Text tu peux pas demander a ta base de donneés de les trier par date/heure justement... (enfin tu peux, mais ca te triera tes lignes a la "vas comme j'te pousse")

AbriBus
_______________________________
La direction de la RATP vous rappelle que la
dégradation d'AbriBus est passible de lourdes
sanctions.
Ne dégradez pas les AbriBus. L'AbriBus est ton ami.
0