ODBC Microsoft Access Error: синтаксическая ошибка в обновлении, удаление оператора - PullRequest
1 голос
/ 05 ноября 2019

Я пишу Java-программу, которая соединяется с Ms Access с помощью драйвера ODBC-JDBC. Оператор Select и Insert Into работает правильно, но оператор удаления и обновления показывает синтаксическую ошибку. Я перепробовал все возможные решения, но ничего не помогло. Может кто-нибудь подсказать, что не так с моим синтаксисом?

import java.sql.*;
public class Lab{
public static void main(String[] args) {

    try{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

    Connection conn=DriverManager.getConnection("jdbc:odbc:Test");

    Statement st=conn.createStatement();

    String sql="SELECT * FROM Playlist ";

    ResultSet rs=st.executeQuery(sql);

    while(rs.next()){
    System.out.println("\n "+rs.getString("S No")+"\t"+rs.getString("Song name")+"\t"+rs.getString("Album")+"\t"+rs.getString("Singer"));
    }

    st.executeUpdate("INSERT INTO Playlist"
            + " VALUES (6, 'Nebraa', 'WesteStars', 'Bre')");

    sql = "update Playlist " 
        + " set Song name='Nebula' " 
        + " where S No=6";
    st.executeUpdate(sql);

    sql = "DELETE FROM Playlist " +
                   "WHERE S No = 6 ";   
    st.executeUpdate(sql);

    conn.close();
    }catch(Exception e){
    System.out.println(e.getMessage());
    }
}

}

1 Ответ

2 голосов
/ 05 ноября 2019

Имена полей Song Name и S No имеют пробел, поэтому заключите в разделители [ ] - [Song Name] и [S No]. Не рекомендуется использовать пробелы и знаки препинания / специальные символы в соглашениях об именах баз данных.

...