Boa Tarde!
Uso Um JDataChooser para pegar a data (dd/MM/yyyy).
Ultilizo as seguintes Funcoes Para pegar Essa Data:
publicstaticSimpleDateFormatfdata=newSimpleDateFormat("dd/MM/yyyy");// para pegar somente a DataStringd_nasc=data.fdata.format(jd_nascimento.getDate());
Mais em Alguns casos preciso Grava isso No SQL vazio...
Custumo usar a seguinte função para textar vazio no JTextField:
Ex: Uma Tela De CAdastro de Cliente e o Usuario prefere não colocar a Data de Nascimento!
D
danilovicente
Faz uma verificação, removendo espaços e removendo as barras se for nulo quer dizer que o usuário não preencheu nada. Aí seta o valor nulo para a variável. No seu banco a coluna data pode ser vazia?
samuk1
Bom Dia Danilo, Obrigado Por Responder...
Estou Usando JDBC com Acess, e aceita grava vazio Sim.
Em Relação ao verificar se está vazio eu uso uma rotina para JtextField:
Esse erro dá quando você seta vazio né?
O que eu sugeri é assim, faz uma verificação se for vazio já seta vazio direto, sem fazer a conversão. do simpleDateFormat eu acredito que o erro seja por isso.
samuk1
Certo… Para fazer o Teste Coloquei “Null” direto.
Dai Aparece o erro Java.sql.SQLException: Tipo de dados incompativel na expressão de criterio.
Acho por que não se usa “Null” em Date.
Mais qual eu uso?
E como eu posso verificar se o date é vazio??? Normalmente eu uso " .isEmpty" , Mais com Date não Aceita…
Abraçosssss
D
danilovicente
O Null do Date seria preencher tudo com 0
samuk1
Se eu preencho tudo com 0 (zero) Ele grava a data 31/12/1969…
Talvez seja uma configuração Padrao do Access…
Vou Pesquisar nos documentos do access, qual o caracter que ele grava vazio… Ou…
Se eu mudar o campo de Date pra Texto…
O que eu perco com isso?
D
danilovicente
A meu ver não perde em nada. Pois quando você converte e armazena em uma variavel Date ou GregorianCallendar ele já faz as verificações, por exemplo se digitar mês 13 vai para janeiro do ano seguinte.
samuk1
Mudar o Campo Do Access ão ia ser muito Pratico, Pois toda vez que fosse Ler Ia ter que fazer um String to Date e ao gravar um Date to String!
Dai Depois de muito Pesquisar descobri qual era o problema.
Ao gravar algum valor eu uso:
"UPDATE membros SET data_nasc = ' "+null+"' where codigo ='"+tf_codigo.getText()+"'";
Ao Tentar Garvar Null eu fazia isso entre Aspas simples…
Mais So da certo sem as Aspas Simples. Assim:
"UPDATE membros SET data_nasc = null where codigo ='"+tf_codigo.getText()+"'";
Sofri mais Consegui!!!
Obrigado a Todos!
AndreSorge
samuk, boa noite
Desculpa a demora para responder…mas só uma dúvida, entendo que esse campo não é obrigatório, se ele não é obrigatório porque você está colocando ele no INSERT?
Exemplo:
Stringsql="INSERT INTO TESTE (campos) VALUES (valores)";
Não necessariamente na parte de “campos” precisa conter todos os campos da tabela, sendo assim, ele só irá conter os campos not-null, e se o campo data estiver vazio ou null, ele não estará na parte dos campos…