Erro com o postgre

10 respostas
D

Boa tarde pessoal, quem puder me ajudar, me dê uma luz pra esse erro que está dando quando tento inserir no banco de dados!
estou usando java, com sgbd postgresql!

o erro é: org.postgresql.util.PSQLException: ERRO: erro de sintaxe em ou próximo a “.0”

desde já agradeço a todos.

10 Respostas

drsmachado

Posta a desgraça do código.
Quer que adivinhemos o que está errado?

D

rapaz, tu ta nervoso demais rsrsrsrsrs… brincadeira, já agradeço pela rapidez!
já vou postar o código carma…

ta ai porra:

private void jBSalvarActionPerformed(java.awt.event.ActionEvent evt) { // Esse código utiliza o método validaFormulario para validar suas entradas if ( validaFormulario(evt) ){ BD_Insere objBD = new BD_Insere(); // instancia a classe BancoDados if (objBD.insereProjeto(titulo, cota_da_bolsa, edital, preco_material_consumo, preco_material_permanente, preco_material_bibliografico, data_vigencia_ini, data_vigencia_fim)) { System.out.println(titulo); System.out.println(cota_da_bolsa); System.out.println(edital); System.out.println(preco_material_consumo); System.out.println(preco_material_permanente); System.out.println(preco_material_bibliografico); System.out.println(data_vigencia_ini); System.out.println(data_vigencia_fim); JOptionPane.showMessageDialog(rootPane, "Dados gravados com sucesso", "Confirmação de cadastro", JOptionPane.INFORMATION_MESSAGE); jBLimparActionPerformed(evt); dispose(); // Fecho o Frame atual inicial obj = new inicial(); // Instancio o FramePrincipal obj.setVisible(true); } else { JOptionPane.showMessageDialog(rootPane, "Dados não gravados", "Alerta de erro", JOptionPane.ERROR_MESSAGE); // Volta o cursor para o campo código jTFTitulo.selectAll(); jTFTitulo.requestFocusInWindow(); } } }

D

public boolean insereProjeto(String titulo, String cotaDaBolsa, String edital,
double precoMaterialConsumo, double precoMaterialPermanente,
double precoMaterialBibliografico, String dataVigenciaInicio, String dataVigenciaFim){

boolean resp =true; // variável de retorno
   
       con.conectar(); // abrir conexão com o banco de dados
       // criar e executar a consulta ao banco de dados
       String query = "INSERT INTO projeto (titulo, cota_da_bolsa, edital, preco_material_consumo" +
               "preco_material_permanente, preco_material_bibliografico, data_vigencia_inicio, data_vigencia_fim) " +
               "VALUES " +
               "('"+titulo+"','"+cotaDaBolsa+"','"+edital+"',"+precoMaterialConsumo+"" +
               ""+precoMaterialPermanente+","+precoMaterialBibliografico+",'"+dataVigenciaInicio+"','"+dataVigenciaFim+"')";

       con.inserir(query);

   return resp;

}

drsmachado

1 use a tag [code]

D
public void inserir(String query){
            try {
                comando.execute(query);
            } catch (SQLException ex) {
                Logger.getLogger(Conexao.class.getName()).log(Level.SEVERE, null, ex);
            }

            finally{
                fechar();
            }

    }

void conectar() {
       try {
           
           Class.forName( "org.postgresql.Driver" ); // carrega classe de driver do banco de dados
           // estabelece conexão com o banco de dados
           conexao = DriverManager.getConnection( url, user, senha);
           // cria Statement para consultar banco de dados
           comando = conexao.createStatement();
           System.out.println("Conectado!");
       } catch (ClassNotFoundException e) {
           imprimeErro("Erro ao carregar o driver", e.getMessage());
           
       } catch (SQLException e) {
           imprimeErro("Erro ao conectar", e.getMessage());
           
       }
   } // Fim do método conectar()

   // Método privado que fecha a conexão com o Banco de Dados
   void fechar() {
       try {
           comando.close();
           conexao.close();
           System.out.println("Conexão Fechada");
       } catch (SQLException e) {
           imprimeErro("Erro ao fechar conexão", e.getMessage());
       }
   } // Fim do método fechar()

   // Método privado que imprime mensagens de erro provenientes Exceções
   void imprimeErro(String msg, String msgErro) {
       JOptionPane.showMessageDialog(null, msg + ": " + msgErro, "Erro crítico", 0);
       System.err.println(msg);
       System.out.println(msgErro);
       //System.exit(0);
   } // Fim do método imprimeErro()
D
void conectar() {
       try {
           
           Class.forName( "org.postgresql.Driver" ); // carrega classe de driver do banco de dados
           // estabelece conexão com o banco de dados
           conexao = DriverManager.getConnection( url, user, senha);
           // cria Statement para consultar banco de dados
           comando = conexao.createStatement();
           System.out.println("Conectado!");
       } catch (ClassNotFoundException e) {
           imprimeErro("Erro ao carregar o driver", e.getMessage());
           
       } catch (SQLException e) {
           imprimeErro("Erro ao conectar", e.getMessage());
           
       }
   } // Fim do método conectar()

   // Método privado que fecha a conexão com o Banco de Dados
   void fechar() {
       try {
           comando.close();
           conexao.close();
           System.out.println("Conexão Fechada");
       } catch (SQLException e) {
           imprimeErro("Erro ao fechar conexão", e.getMessage());
       }
   } // Fim do método fechar()

   // Método privado que imprime mensagens de erro provenientes Exceções
   void imprimeErro(String msg, String msgErro) {
       JOptionPane.showMessageDialog(null, msg + ": " + msgErro, "Erro crítico", 0);
       System.err.println(msg);
       System.out.println(msgErro);
       //System.exit(0);
   } // Fim do método imprimeErro()
drsmachado

Aqui está o erro

String query = "INSERT INTO projeto (titulo, cota_da_bolsa, edital, preco_material_consumo" + /*Não existe vírgula entre um e outro*/
"preco_material_permanente, preco_material_bibliografico, data_vigencia_inicio, data_vigencia_fim)
wbdsjunior

estão faltando umas vígulas:

String query = "INSERT INTO projeto (titulo, cota_da_bolsa, edital, preco_material_consumo" + ", preco_material_permanente, preco_material_bibliografico, data_vigencia_inicio, data_vigencia_fim) " + // ^ aqui "VALUES " + "('"+titulo+"','"+cotaDaBolsa+"','"+edital+"',"+precoMaterialConsumo+"" + ", "+precoMaterialPermanente+","+precoMaterialBibliografico+",'"+dataVigenciaInicio+"','"+dataVigenciaFim+"')"; // ^ e aqui
para evitar esse problema e SQL Injection, use PreparedStatement.

D

Pessoal muito obrigado mesmo ta resolvido o problema… caramba até q enfim deu certo!
Agradeço ao “wbdsjunior” pela solução e atenção e também ao drsmachado pela atenção também!

E me desculpem porque sou novo no Fórum!

Mas muito, muitíssimo obrigado!

(OBS.: trabalho de conclusão de disciplina kkkkk)

drsmachado

É sempre assim, trabalhos de conclusão são sempre estressantes.
Só edita o tópico e coloca [resolvido] no título

Criado 28 de junho de 2011
Ultima resposta 28 de jun. de 2011
Respostas 10
Participantes 3