Bon je vais donner plus de code en le modifiant un peu
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| 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 MaTable (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.
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 juste après
sql += "\'" + dateMAJ + "\')";
Je me retrouve à
String erreur = e.toString() + " --- " + sql;
et erreur contient
"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')"
EDIT : Il s'agit bien sûr du premier tour dans le while
Partager