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

Langage Java Discussion :

erreur d'insertion de type long dans un type numerique acess


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 74
    Par défaut erreur d'insertion de type long dans un type numerique acess
    hello a tous

    tous d'abord je vous remercie pour vos aides.

    j'ai un probleme et je ne sais comment le resourde.
    en fait j'essai d'inserer une valeur de type long dans ma base access.
    pour cela j'ai défini dans access ma colonne comme un type numerique entier long.
    a l'execution on a l'erreur suivante:java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression '1149077428674 login='null''.

  2. #2
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Peux-tu nous donner le bout de code qui fait l'insertion de ce long ?
    Sinon as-tu vérifier que le type long de access est aussi codé sur 8 octets comme en java ?


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 74
    Par défaut
    je veux apporté une rectification de l'erreur
    c'est plutot:ERREUR 6java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access] Type de données incompatible dans l'expression du critère.

    la requete à executer est :update journal set tpsfin=1149078582934 where login='kab'
    où 1149078582934 est de type long

  4. #4
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Je parlais d'un bout de code java et non SQL !


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 74
    Par défaut le bout de code
    voici le bout de code
    il sagit de l'update

    public void connectionBD2(String varlogin){
    // definition du chemin
    String url = "jdbc:odbc:BDuser";
    //definition de la methode connection qui permet d'attacquer la base de données
    Connection con = null;
    try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

    //connexion à la bd
    con = DriverManager.getConnection(url,"","");

    java.util.Date fin=new java.util.Date();
    long heuredefincon=fin.getTime();

    //creation de l'objet statement
    Statement requete = con.createStatement();
    String jourfin=jour();
    String heurefin=heure();
    String nul="";




    String quer2="update journal set tpsfin="+heuredefincon+" where login='"+varlogin+"'";
    //messageListener.ajouterText(quer);
    //messageListener.ajouterText(quer2);
    requete.executeUpdate(quer);
    requete.executeUpdate(quer2);
    }

    //gestion des exeptions
    catch(Exception e) { messageListener.ajouterText("ERREUR 6"+e.toString()); }
    finally {
    try {con.close();}
    catch(SQLException e) {}
    }
    }//fin de la methode connectionBD12

  6. #6
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Je ne suis pas très sùr ,mais je pense qu'il faut créer un statement pour chaque requète. En tout cas ce qui est sùr c'est que c'est plus propre.


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 74
    Par défaut je vous renvoie le bout de code
    public void connectionBD2(String varlogin){
    // definition du chemin
    String url = "jdbc:odbc:BDuser";
    //definition de la methode connection qui permet d'attacquer la base de données
    Connection con = null;
    try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

    //connexion à la bd
    con = DriverManager.getConnection(url,"","");

    java.util.Date fin=new java.util.Date();
    long heuredefincon=fin.getTime();

    //creation de l'objet statement
    Statement requete = con.createStatement();

    String quer2="update journal set tpsfin="+heuredefincon+" where login='"+varlogin+"'";

    messageListener.ajouterText(quer2);

    requete.executeUpdate(quer2);
    }

    //gestion des exeptions
    catch(Exception e) { messageListener.ajouterText("ERREUR 6"+e.toString()); }
    finally {
    try {con.close();}
    catch(SQLException e) {}
    }
    }//fin de la methode connectionBD12

  8. #8
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    S'il te plait, à l'avenir pense a utiliser les balises s'il te plait, elles sont la pour sa, et sa facilitera nettement la lecture de ton code

    A bon entendeur, salut
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 74
    Par défaut
    merci mais ce n'est pas le probleme car avec un seul statement ça marche .
    j'ai déjà essayer.
    mon probleme vient du fait que le type numerique entier long est incompatible au type long de java.
    que faire j'ai bessoin de cette variable de type long

  10. #10
    Membre émérite Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Par défaut
    Citation Envoyé par obydissonn
    ERREUR 6java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access] Type de données incompatible dans l'expression du critère
    la requete à executer est :update journal set tpsfin=1149078582934 where login='kab'
    Il semblerait qu'un "long" Java en Access ne soit pas compatible avec ta représentation choisie en base (en l'occurrence <<numerique entier long>>) avec ton driver JDBC/ODBC ; donc change de type en base si tu peux!
    Sinon il est toujours plus propre+portable+efficace d'utiliser des "PreparedStatement" plutôt que des "Statement", qui vérifieront eux la cohérence en interne : des types, des conversions, des nulls...

Discussions similaires

  1. Erreur sur insertion d'une date dans MySQL
    Par pidlas dans le forum Général Python
    Réponses: 25
    Dernier message: 30/04/2013, 09h50
  2. Type long dans all_tab_partitions
    Par poiskail dans le forum PL/SQL
    Réponses: 1
    Dernier message: 10/05/2011, 08h48
  3. Réponses: 4
    Dernier message: 09/06/2009, 14h20
  4. insertion valeur true/false dans champ type bit
    Par bambino13 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 29/05/2009, 18h54
  5. insertion d'un type date dans une table access
    Par monstour dans le forum ASP
    Réponses: 7
    Dernier message: 18/06/2004, 16h57

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