Sei que aqui não é lugar ideal para fazer essa pergunta mais lá vai…
Como faço para gravar um null em um campo date, pois tenho um formulario que o usuário vai entrar com dados, e tem campos data que não é obrigatorio preencher, quando tento dar um insert sem dados nos campos data, aparece o seguinte erro:
Não sei se entendi direito, mas na criação da tabela no banco, o campo da Data pode ser nulo?
renamed
Os SGBDs que usam permitem que coloque null como date, desde que o campo seja nullable.
Se não permitir que coloque nulo, ai é regra de negócio e você tem que seguir.
Mas, se for um projeto pessoal, eu uso DateTime.MinValue no C#, não sei como obter o menor valor possível da data no Java. Mas mesmo assim, só para projetos pessoais, não quebre regra de negócio a toa.
viniciusgundim
Thiago Siqueira, esqueci de colocar esse detalhe, no campo data do banco está para aceitar valores null, isso acontece só pq esta como date, vi algo sobre .AsString := null; mais não intedi direito como se usa…
Aguardo respostas
viniciusgundim
Até onde sei não consigo usar scripts em programação para desktop…
Mais alguma ideia???
viniciusgundim
Estava olhando um outra forma de da um insert só usando values (?,?,?,?), que pode dar certo!!!
Alguma ideia
Até…
Hebert_Coelho
viniciusgundim:
Thiago Siqueira, esqueci de colocar esse detalhe, no campo data do banco está para aceitar valores null, isso acontece só pq esta como date, vi algo sobre .AsString := null; mais não intedi direito como se usa…
Aguardo respostas
Descula pergunta mas… Já tentou “data = null;” e depois salvar?
ViniGodoy
1. Verifique se sua coluna do banco está mesmo aceitando valores nulos;
2. Use PreparedStatement e não Statement (o esqueminha com VALUES (?, ?, ?)). Você JAMAIS deve concatenar SQLs no braço usando o sinal de +.
3. Se ainda não der certo, poste seu código aqui. E não esqueça de coloca-lo envolta da tag [code] e [/code]
viniciusgundim
Chará, nunca usei o preparedstatement, poderia me dar uma dica, vou mandar minha classe conexão, e de uma olhada:
packagecga;importjava.sql.*;importjavax.swing.*;importjava.sql.DriverManager;publicclassconexao{finalprivateStringdriver="org.postgresql.Driver";finalprivateStringurl="jdbc:postgresql://10.1.1.1:5432/cga";finalprivateStringusuario="postgres";finalprivateStringsenha="senha";privateConnectionconexao;publicStatementstatement;publicResultSetresultset;publicbooleanconecta(){booleanresult=true;try{Class.forName(driver);conexao=DriverManager.getConnection(url,usuario,senha);conexao=DriverManager.getConnection(url,usuario,senha);System.out.println("CONECTOU");}catch(ClassNotFoundExceptionDriver){JOptionPane.showMessageDialog(null,"DRIVER NÃO LOCALIZADO: "+Driver);result=false;}catch(SQLExceptionFonte){JOptionPane.showMessageDialog(null,"ERRO NA CONEXÃO COM A FONTE DE DADOS "+Fonte);result=false;}returnresult;}publicvoiddesconecta(){booleanresult=true;try{conexao.close();System.out.println("BANCO DE DADOS ENCERRADO");}catch(SQLExceptionerroSQL){JOptionPane.showMessageDialog(null,"NÃO FOI POSSIVEL FECHAR BANCO DE DADOS"+erroSQL.getMessage());result=false;}}publicvoidexecuteSQL(Stringsql){try{statement=conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);resultset=statement.executeQuery(sql);}catch(SQLExceptionsqlex){/*JOptionPane.showMessageDialog(null,"Nao foi possivel "+"" + "executar o comando sql,"+ sqlex+", o sql passado foi"+sql); */JOptionPane.showMessageDialog(null,"Não foi possível localizar dados.");}}}