Próbuję użyć przygotowanych instrukcji, aby ustawić nazwę tabeli, z której będą wybierane dane, ale nadal otrzymuję błąd podczas wykonywania zapytania.Używanie gotowych instrukcji do ustawiania nazwy tabeli
Błąd i przykładowy kod są wyświetlane poniżej.
[Microsoft][ODBC Microsoft Access Driver] Parameter 'Pa_RaM000' specified where a table name is required.
private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM [?]"; //?=date
public Execute(String reportDate){
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection(Display.DB_MERC);
PreparedStatement st = conn.prepareStatement(query1);
st.setString(1, reportDate);
ResultSet rs = st.executeQuery();
Jakieś myśli o tym, co może być przyczyną tego?
Tak, sanityzacja danych wejściowych, aby zapobiec zastrzykom SQL! –
Jeśli chcesz zastąpić różne nazwy tabel w kwerendzie o tej samej strukturze, wskazuje to na lukę w projekcie bazy danych. Przynajmniej wskazuje na wiele tabel o tych samych atrybutach relacji. Normalizuj go do pojedynczej tabeli z kolumną "temat". –