begin process at 2010 03 18 05:41:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

Access

 > 

Requêtes

 > 

INSERT INTO ok via ACCESS Too few parameter via ODBC


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

INSERT INTO ok via ACCESS Too few parameter via ODBC

mardi 13 janvier 2009 à 00:05:00 | INSERT INTO ok via ACCESS Too few parameter via ODBC

Frederick_Etudiant

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).

La création de la table se passe bien, mais ensuite impossible de faire l'insert into et je me retrouve avec l'exception : java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 2.

Je ne vois pas où est le problème puisque ma table est de type : CREATE TABLE MaTable (Code Char(4), Sens Char(1), Num Integer, Horaire Char(8)) et ma requête insert into MaTable values ("17", 'A', 1, "06:57:00").
A la base le dernier champ était de type Date, j'ai mis un Char(8) dans le cas où le format de la date est erroné (si tout fonctionne, je remettrais en Date et je verrais si cela est correct).

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.

Quelqu'un pourrait-il m'apporter son aide?
Merci d'avance
mercredi 14 janvier 2009 à 22:27:39 | Re : INSERT INTO ok via ACCESS Too few parameter via ODBC

Frederick_Etudiant

Vu l'absence de réponse, je vais donner un peu plus d'information.

Bon je vais donner plus de code en le modifiant un peu

[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());
    }[/CODE]

Toujours la même erreur.
La table se crée bien, mais le INSERT INTO foire (mais ok si "lancé à la main" depuis ACCESS)

Je lance en mode debug.
Les champs sont bons, arrivé à la ligne [CODE]stmt.execute(sql);[/CODE]
juste après [CODE]sql += "\'" + dateMAJ + "\')";[/CODE]
Je me retrouve à [CODE]String erreur = e.toString() + " --- " + sql;[/CODE] et erreur contient [CODE]"java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1. --- insert into DebutHoraire (Code, Sens, Num, Hor) values ("17", 'A', 1, '06:57:00')"[/CODE]


EDIT : Il s'agit bien sûr du premier tour dans le while


Cette discussion est classée dans : access, insert, table, char, into


Répondre à ce message

Sujets en rapport avec ce message

insert into cherche exemple ... SVP! [ par trexor ] Voilà, c'est pas que j'en ai marre mais je pète un peu les plonds. Pour insérer des données dans une bas access, c'est vraiment la merde avec vb.net!l access : insert into champ boolean [ par trexor ] Bonjour,j'ai un champ access boolean (true/false) que je dois remplir avec vb.net, mais j'ai une erreur insert into  Voici ma requte :Dim req1 = "INSE creer une table de plus de 11 colonnes vers Access par programmation [ par romagny13 ] Bonjour,- j'utilise visual studio 2005 en C# et je passe par System.Data.OleDb pour executer ma requete  -lorsque j'execute une requete permettant de insert into/select [ par boubou2412 ] salut tout le monde,je suis certaine qu'il ya une faute dans ma requete j'aimerais bien savoir comment la corriger, bon j'ai un table X qui contient p Insert into [matable] values (ma variable, Select...) c'est possible?? [ par yanis7518 ] Salut à tous, Je voudrais faire une procédure stockée qui fait des insertions d'une table vers une autre. Dans ma nouvelle table j'ai un Guid que je problème d'importation de fichier texte sous access 2007 [ par bies ] bonjour, je veux importer un fichier texte dans une table access 2007 et j'ai un petit souci. j'ai un champ date/heure dans ma table. et lorsque acces Comment faire un select dans une table apres un insert au sein d'une meme transaction [ par cedkat ] Bonjour, Comme décrit dans le titre, je cherche à faire un select dans une table dans laquelle je viens de faire un insert. J'ai actuellement un plan Remplacement de valeurs pour formule de calcul [ par anspauldou ] Bonjour J'ai deux tables Formule et SaisieValeur La table Formule contient : Insert Into Formule (NumFormule, LibFormule) Values ('01', (({a}+{b})* Ajouter un enregistrement Vb INSERT INTO [ par scottmat ] Bonjour à tous, voila j'utilise VB et voudrais ajouter tout simplement une ligne (enregistrement) dans une table, voici le code que j'utilise : Di Problème d'insertion d'un char dans une table [ par Trucplock ] Bonjours, Voilà, alors je reste bloqué sur un problème depuis plusieurs heures. J'ai un formulaire à faire avec un tableau à remplir, chaque ligne co


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,281 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales