Olá, estou desenvolvendo um programa pra faculdade que está dando o seguinte erro:
[color=red]java.sql.SQLException: [MySQL][ODBC 3.51 Driver][mysqld-5.0.45-community-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘nomeFisio’ AND horario =‘09:00’ AND data =‘2008/05/28’’ at line 1[/color]
Sendo que as colunas da tabela e seus tipos são respectivamente:
[color=green]fisioterapeuta varchar(50) NOT NULL, data date NOT NULL, horario varchar(5) NOT NULL[/color]
O erro está na seguinte parte do código:
Login.db.comando.executeUpdate("UPDATE agenda SET paciente ='" +
nomePaciente + " WHERE fisioterapeuta ='" + cbxAgendaFisio.getSelectedItem() +
"' AND horario ='" + tblAgendaAgenda.getValueAt(i, 0) + "' AND data ='" +
dfBanco.format(dataColuna[j]) + "'");
Será que alguém consegue achar aonde está o erro???
Use PreparedStatement para evitar esses problemas com formatos de datas e horas. Aí a string do UPDATE seria algo parecido com
" UPDATE agenda SET paciente = ? WHERE fisioterapeuta = ? AND horario = ? and data = ?"
e o driver do MySQL é que ia se virar com a formatação de datas (se você já aprendeu o MySQL você deve saber que datas não são formatadas desse jeito.)
Leve em consideração o que thingol falou. Mas acho que faltou um ’ aqui Login.db.comando.executeUpdate("UPDATE agenda SET paciente ='"nomePaciente + " WHERE ..." depois do nomePaciente + "
Valew pela dica thingol, mas eu nunca usei o PreparedStatement antes e o prazo tá meio apertado para aprender heheh
Qto ao MySQL, é a primeira vez que uso ele, mas esse formato de datas é aceito sim pois é o formato que usei
para fazer os “INSERT” e deu certo.
e eu achei o erro, é o que o fiaux falou msm…
… mó besteira… eu esqueci de colocar um [color=red]" ’ "[/color] após receber o nomePaciente e antes do where hehehe
Mas mesmo assim, valew
ta aí o código funcionando
Login.db.comando.executeUpdate("UPDATE agenda SET paciente ='" +
nomePaciente + "' WHERE fisioterapeuta ='" + cbxAgendaFisio.getSelectedItem() +
"' AND horario ='" + tblAgendaAgenda.getValueAt(i, 0) + "' AND data ='" +
dfBanco.format(dataColuna[j]) + "'");