Estou fazendo um sistema pra controle de pizzaria, esta quase tudo funcionando, com excessão de uma coisa
quando o usuario clicar no botão Imprimir, seria o mesmo que confirmar compra.
Sendo assim, alem de imprimir a nota, ele guarda algumas informações no banco, em duas tabelas diferentes.
As duas tabelas estão no mesmo banco de dados, uma chamada cliente e uma chamada Vendas.
Na cliente, guarda informações detalhadas da compra, tem 7 campos:nome, pedido, quantidade, preço unitario, valor total, hora e data
Na Vendas, guarda informações mais genéricas sobre a compra, tem 4 campos:nome, valor total, hora e data
O banco se chama Vendas (o mesmo nome da tabela Vendas)
o comando guarda as informações na tabela cliente sem problemas, mas da erro ao tentar gravar dados na tabela Vendas(linha 107)
Estou usando o Access como banco, tirei todas as restrições dos campos, onde os campos nome e valor estão como texto, e os campos
hora e data estão como Hora/Data e mesmo assim continua o erro, que é General Error.
Dei um JOptionPane nas variaveis data e hora e query(ja montada) que serão passadas ao banco, só pra visualizar, e não achei erros
Ja usei um printstacktrace e ele me diz que o problema esta na linha stm.executeQuery(query);
ja tentei usar o breakpoint, não consegui. :shock: Estou o usando o Netbeans 6.9
Segue o codigo:
public class Sistema_Pizzaria extends javax.swing.JFrame{
private Sistema_Pizzaria() {
initComponents();
this.iniciar();
}
public Connection con;
public Statement stm;
public void conectar(){
try
{
/* Tenta se conectar ao Driver */
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch (ClassNotFoundException e)
{
JOptionPane.showMessageDialog(null, "Impossível carregar o Driver.");
System.exit(0);
}
try
{
con = DriverManager.getConnection("jdbc:odbc:Vendas");
stm = con.createStatement();
}
catch (SQLException sqle)
{
JOptionPane.showMessageDialog(null, "Problema ao conectar!");
System.exit(0);
}
}
public void desconectar(){
try
{
con.close();
stm.close();
}
catch (SQLException sqle)
{
JOptionPane.showMessageDialog(null, "Problema ao desconectar!");
System.exit(0);
}
}
public void iniciar(){
this.conectar();
//outros metodos para construir a interface grafica
}
//metodo que guarda os dados, e onde esta o problema
public void guardarDados(){
if(txt_nome.getText().equals(""))
JOptionPane.showMessageDialog(null,"o campo cliente esta vazio, preencha o campo cliente");
else{
//variaveis utilizadas para mandar os valores para o banco
//variavel nome
String nome=txt_nome.getText();
//variavel valor total
String valor=txt_total.getText();
//pegar a data do sistema
Date hoje = new Date();
SimpleDateFormat df;
df = new SimpleDateFormat("dd/MM/yyyy");
String data = df.format(hoje);
JOptionPane.showMessageDialog(null, data);
//pegar a hora do sistema
String hora=this.getHora();
JOptionPane.showMessageDialog(null, hora);
//percorrer a lista pedido para pegar todos elementos da lista
int tamanho=modelo_pedido.size();
Object pedido[]=new Object[tamanho];
Object quant[]=new Object[tamanho];
Object val[]=new Object[tamanho];
Object unit[]=new Object[tamanho];
//gravar dados na tabela cliente dentro do looping
for(int i=0;i<tamanho;i++){
pedido[i]=modelo_pedido.get(i);
quant[i]=modelo_quantidade.get(i);
val[i]=modelo_valor.get(i);
unit[i]=modelo_unitario.get(i);
String querycliente="INSERT INTO Cliente (Nome, Quantidade, Pedido, Unitario, Valor, Hora, Data)"+
"VALUES('"+nome+"',"+quant[i]+",'"+pedido[i]+"','"+unit[i]+"','"+val[i]+"','"+hora+"','"+data+"')";
try {
stm.executeUpdate(querycliente);
}
catch (SQLException e) {
JOptionPane.showMessageDialog(null,"" + e.getMessage(),"Erro",0);
}
}
//comando que sera passado ao banco na tabela Vendas
String query="INSERT INTO Vendas (Nome, Valor, Hora, Data) VALUES ('"+nome+"','"+valor+"','"+hora+"','"+data+"')";
try {
JOptionPane.showMessageDialog(null, query);
//o erro esta na linha de baixo
stm.executeUpdate(query);
JOptionPane.showMessageDialog(null, "Dados guardados com sucesso");
}
catch (SQLException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null,"erro na segunda instrução sql");
JOptionPane.showMessageDialog(null,"" + e.getMessage(),"Erro",0);
}
}
}
Ja procurei muito e não consegui saber o porque deste erro, se alguem puder me ajudar fico agradecido
>