Zavoláním executeQuery(sql)
ve skutečnosti vyvoláte metodu na Statement
- není na PreparedStatement
. Takže vyhodíte již přiřazenou hodnotu parametru a provedete dotaz, kde je zástupný symbol ?
zůstane neanalyzovaný - takže se zobrazí tato chyba.
Změnit
ResultSet results = state.executeQuery(sql);
do
ResultSet results = state.executeQuery();
a měli byste být v pořádku.
(A z důvodu
resultname = state2.executeQuery(sql2);
musí být
resultname = state2.executeQuery();
také)