Informatique - Forum informatique - telechargement gratuit

 CONTACT 
Gsiteg(à)gmail.com
Renplacer (à) par @



 FAQFAQ   RechercherRechercher   S'enregistrerS'enregistrer   ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 


INSERT INTO ok via ACCESS Too few parameter via ODBC

 
Poster un nouveau sujet   Répondre au sujet    GsiteG Index du Forum -> Programmation & développement
Auteur Message
SangJun



Inscrit le: 14 Jan 2009
Messages: 1

MessagePosté le: Mer Jan 14, 2009 11:49 pm    Sujet du message: INSERT INTO ok via ACCESS Too few parameter via ODBC Répondre en citant

Bonsoir à tous,

Je n'arrive pas à résoudre un problème et encore moins à le comprendre.

Je travaille avec Java et ACCESS, je crée une table et juste ensuite je fais un insert into (ou plutôt plusieurs dans une boucle FOR).



Code:
    try{
        CalculHoraire calcHor = new CalculHoraire();
        laDate = calcHor.stringToDate(jTextFieldLaDate.getText(), "yyyy-MM-dd");
            BufferedReader LecteurBufferise = null;
            String ligneDonnee;
            boolean eof = false;
            try {

              //Ouverture du Fichier
              LecteurBufferise = new BufferedReader(new FileReader(nomFichierHoraireComplet));
              String sql="";

              try
                {
                    //  Connect to the Database
                    String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
                    //String url = "jdbc:odbc:Teenergy";  // if using ODBC Data Source name
                    String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+fichierDestination.getAbsolutePath();
                    String userid = "";
                    String password = "";

                    Class.forName( driver );
                    Connection connection = DriverManager.getConnection( url, userid, password );

                    //  Read data from a table

                    sql = "CREATE TABLE MaTable (" +
                            "Code Char(4), " +
                            "Sens Char(1), " +
                            "Num Integer, " +
                            "Hor Char(8))";
                    Statement stmt = connection.createStatement();
                    stmt.execute(sql);

                    while (eof != true) {
                        //Lecture de la ligne
                        ligneDonnee = LecteurBufferise.readLine();

                        if(ligneDonnee!=null)
                        {
                            String donneesLignes[] = ligneDonnee.split(";");
                            if(donneesLignes[1].compareTo(""+laLigne.trajet+"")==0 && donneesLignes[0].charAt(0)==laLigne.sens)
                            {
                                    sql = "insert into DebutHoraire (Code, Sens, Num, Hor) " +
                                            "values (" ;
                                    sql += "\"" + laLigne.code + "\", ";
                                    sql += "\'" + donneesLignes[0].charAt(0) + "\', ";
                                    sql += donneesLignes[1] + ", ";
                                    sql += "\'" + dateMAJ + "\')";
                                   
                                    stmt.execute(sql);
                                }

                            }

                        }else
                        {
                            eof=true;
                        }
                    stmt.close();

                    jLabelErreurLaDate.setText("OK");

                }
                catch(Exception e)
                {
                    String erreur = e.toString() + " --- " + sql;
                    jLabelErreurLaDate.setText(erreur);
                }
            }
            catch (FileNotFoundException ex) {
              jLabelErreurLaDate.setText("Fichier Non Trouvé !!");
            }
            catch (IOException ex) {
              jLabelErreurLaDate.setText("Erreur lecture ligne fichier !!");
            }
            finally {
            try {
               LecteurBufferise.close();
            }catch (IOException ex1) {
               jLabelErreurLaDate.setText("Erreur fermeture fichier !!");
            }
         }
    }catch(Exception e)
    {
        jLabelErreurLaDate.setText("Erreur : " + e.toString());
    }


Toujours la même erreur.
Je me suis dit, faisons un copié-collé de la variable sql et lançons la "à la main" dans une requête depuis ACCESS, le résultat pourrait me donner plus d'informations. Et là, surprise, le tuple est ajouté.
Je me retrouve dans une situation qui me laisse très perplexe.

Je lance en mode debug.
Les champs sont bons, arrivé à la ligne
Code:
stmt.execute(sql);

juste après
Code:
sql += "\'" + dateMAJ + "\')";

Je me retrouve à
Code:
String erreur = e.toString() + " --- " + sql;
et erreur contient
Code:
"java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1. --- insert into MaTable (Code, Sens, Num, Hor) values ("17", 'A', 1, '06:57:00')"



Quelqu'un pourrait-il m'apporter son aide?
Merci d'avance
Voir le profil de l'utilisateur Envoyer un message privé


Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    GsiteG Index du Forum -> Programmation & développement Toutes les heures sont au format GMT
Page 1 sur 1

 
Sauter vers:  

discussions similaires
access
demande des codes pour tavailler à l'Access


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com

phpBB SEO


Articles OuedZem | Gagner de l'argent | Webdesigner | Forum informatique | Sapeurs-pompiers

Copyright © 2007 www.GsiteG.com - Tous droits réservés