2015-08-26 6 views
3
//golfer and CourseName are strings initialised earlier 
String query = "INSERT INTO Temp (GolferID,CourseID,DatePlayed,1st,2nd,3rd,4th,5th,6th,7th,8th,9th,10th,11th," 
      + "12th,13th,14th,15th,16th,17th,18th)VALUES('" 
      + golfer + "','" + CourseName + "',#1/1/2011#"; 

    for(int j = 0; j <=17; j++) 
    { 
     query = query + "," + Scores[j]; 
    } 
    query = query + ")"; 
    System.out.println(query); 
//INSERT INTO Temp(GolferID,CourseID,DatePlayed,1st,2nd,3rd,4th,5th,6th,7th,8th,9th,10th,11th,12th,13th,14th,15th,16th,17th,18th)VALUES('test','Blue Valley CC',#1/1/2011#,4,3,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)*/ 
\\this is what the string eventually looks like. 

    DBConnect db = new DBConnect(); 
    db.InsertGame(query); 

это соответствующий код в БДСВЯЗИ - InsertGame ...Ucanaccess ошибка - неожиданный маркер

connection = DriverManager.getConnection("jdbc:ucanaccess://Golf.accdb"); 
statement = connection.createStatement();//declared earlier 
statement.execute(query); 

Это продолжает давать мне следующие ошибки: СИЛЬНАЯ: нулевая net.ucanaccess.jdbc.UcanaccessSQLException: неожиданный маркер: 2 net.ucanaccess.jdbc.UcanaccessStatement.execute (UcanaccessStatement.java:109)»

Если я скопировать и вставить запрос прямо в доступе он выполняет отлично Я использую тот же метод вставки в другой.таблицу в базе данных, которая отлично работает, но все эти поля являются текстовыми полями. Я не слишком уверен, что это имеет значение.

+0

Отформатируйте свой код. – johnnyRose

ответ

2

Я был в состоянии воссоздать проблему под UCanAccess 3.0.0, используя следующий код:

sql = 
     "INSERT INTO Temp (GolferID,CourseID,DatePlayed,1st,2nd,3rd) " + 
     "VALUES ('test','Blue Valley CC',#1/1/2011#,4,3,5)"; 

UCanAccess, кажется, путаясь от имени столбца 2nd. Я смог успешно выполнить заявление, когда я заключил имена столбцов в квадратных скобках:

sql = 
     "INSERT INTO Temp (GolferID,CourseID,DatePlayed,[1st],[2nd],[3rd]) " + 
     "VALUES ('test','Blue Valley CC',#1/1/2011#,4,3,5)"; 
+1

Да, конкретная последовательность неправильно понята подготовителем. Даже если я думаю, что использование квадратных скобок, как предположил Горд, всегда является хорошей практикой со «специальными именами» (например, имена, начинающиеся с цифры), я исправлю эту ошибку в следующей версии. – jamadei

+0

Совершенство. Спасибо –

Смежные вопросы