IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

[ACCESS] Problème d'insertion


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 108
    Par défaut [ACCESS] Problème d'insertion
    Voila j'ai un probleme lors d'une insertion dans une base de donnée access en java.
    Voici comme je procède:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    public int execUpdate(String s) {
    		this.CreateStatement();
     
    		try {
    			//System.out.print(s);
    			this.res = st.executeUpdate(s);
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return this.res;
    	}
    public void CreateStatement(){
    		try {
    			this.st = this.con.createStatement();
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    public void connection() {
    		Connection con = null;
    		try {
    			Class cDriver = Class.forName(DRIVER);
    			Driver d = (java.sql.Driver)cDriver.newInstance();
    			DriverManager.registerDriver(d);
     
    			this.con = DriverManager.getConnection(URL,Constantes.USER,Constantes.PSW);
    			System.out.print("Connected");
    		} catch (Exception e) {
    			//e.printStackTrace();
    			System.out.print("Error connection");
    		}
    	}
    Je ne met pas la totalité du code sinon vous n'allez plus vous en sortir, mais en gros la fonction connection fonctionne correctement étant donné que mes SELECT ne posent pas de probleme.

    Voici mon appel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String query ="INSERT INTO test_tab (id,myfield) VALUES ('1',\"test\")";
    		System.out.print(query);
    		s+=dao.execUpdate(query);
    Il n'y a pas d'erreur dans la querry elle meme je l'ai testée directement dans ACCESS.

    J'ai vu un post semblable (créé par ocean), et en utilisant sa méthode cela fonctionne bien (en utilisant un prepareStatement).
    J'aimerais pouvoir le faire directement depuis une query (string) qui me serait envoyé et donc sans prepareStatement.

    L'erreur que je reçois:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
    Merci d'avance!

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Le problème vient de là:

    Comme son nom le laisse supposer, cette méthode ne fonctionne que pour les update, et non pour les insert.

    Regarde l'API java de communication SQL. Il y a des méthodes dédiées qui diffèrent selon le type d'opération que tu veux faire (INSERT, UPDATE, SELECT, DELETE...)
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 108
    Par défaut
    MErci pour ta réponse rapide.
    En allant vérifier dans l'api java voici ce que j'ai trouvé:

    executeUpdate(String sql)
    Executes the given SQL statement, which may be an INSERT, UPDATE, or DELETE statement or an SQL statement that returns nothing, such as an SQL DDL statement.
    Donc il me semble que je peux l'utiliser pour un insert. non?

  4. #4
    Membre expérimenté Avatar de hydraland
    Profil pro
    Développeur Java
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Par défaut
    Salut,

    Il est tout a fait possible de faire des inserts avec la méthode executeUpdate. Le problème vient du fait que tu entoures ton chiffre par des cottes ('). Enlèvent les, cela devrait mieux marcher.

    A+
    Hydraland

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 108
    Par défaut
    non le problème ne vient pas des ''. J'ai testé avec et sans, et le résultat est le même.

  6. #6
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Citation Envoyé par lem01
    non le problème ne vient pas des ''. J'ai testé avec et sans, et le résultat est le même.
    Et en remplaçant les quotes doubles par des simples autour de test?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String query ="INSERT INTO test_tab (id,myfield) VALUES ('1','test')";
    Juste une idée comme ça... je n'ai pas testé
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    961
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 961
    Par défaut
    Quelques idées au pif :

    1. Avec des '' autour de test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "INSERT INTO test_tab (id,myfield) VALUES ('1','test')";
    2. Est-ce bien myfield ? Peut-être my_field? Ou testtab?

    3. L'erreur vient - elle du bloc catch dans CreateStatement ou execUpdate ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET/Access] Problème avec une requête d'insertion
    Par Bladinou dans le forum Accès aux données
    Réponses: 8
    Dernier message: 29/05/2007, 18h06
  2. Réponses: 1
    Dernier message: 07/10/2006, 10h35
  3. Débutant: problème d'insertion dans une BD access
    Par nnj dans le forum Accès aux données
    Réponses: 1
    Dernier message: 04/10/2006, 09h49
  4. [VB.Net][Access] Problème de requête d'insertion
    Par xG-Hannibal dans le forum Windows Forms
    Réponses: 1
    Dernier message: 28/07/2006, 11h57
  5. Problème d'insertion dans une table Access
    Par tribaleur dans le forum ASP
    Réponses: 21
    Dernier message: 27/06/2006, 08h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo