COMO LIDAR COM DATA NA BD???

MARCOS 04/07/2011 10:28:03
#378415
Pessoal,
O campo tipo [Ô]DateTime[Ô] de uma tabela ( Access ,por exemplo), não aceitam valores
em branco. No entanto, temos casos em que o usuário , não tem obrigação de preencher
uma data, pois o campo é opcional. Neste caso, em que o usuário deixou o campo vazio,
e ao mesmo tempo, a BD não aceita isto, como os colegas lidam com a situação????


Agradeço qualquer orientação
JONATHANSTECKER 04/07/2011 10:36:12
#378416
Resposta escolhida
Insira um valor Nulo.
IIf(Data = [Ô][Ô], DBNull.Value, Data)
MARCOS 04/07/2011 11:13:28
#378423
Jonatha,
Não entendi!

Meu controle, se chama [Ô]TxtDataNasc[Ô].

Como faço para atribuir a ele um valor nulo????

Pergunto into, pois a propiedade [Ô]Text[Ô] dele não esta aceitando a expressão [Ô]DBNull[Ô]


Alguém pode ajudar???
JONATHANSTECKER 04/07/2011 11:28:24
#378425
Estamos falando do campo no Banco de Dados.
Quando você for salvar os dados no BD, você verifica se a data no TextBox foi preenchida.
Caso não tenha sido, você atualiza a data como um valor nulo. (DBNull.Value)
Dessa form o BD entenderá que não foi passado nenhum valor.
KILLER 04/07/2011 14:39:14
#378440
usando o mysql eu faria assim:

iif(isDate(TxtDataNasc.text), format(TxtDataNasc.text, [Ô]yyy-MM-dd[Ô]), [Ô]NULL[Ô])
MARCOS 05/07/2011 10:49:25
#378501
Prezados colegas,
Apezar da boa vontade de vocês, eu creio que não me expressei corretamente:


O problema:


Eu tenho uma tabela, com vários campos de Data (DatNasc,DatEnt,DataSai,etc...)
Cada campo destes na tabela, é do tipo DateTime.Como meu usuário não é obrigado
a preencher todas as datas, acontece de eu ter caixas de texto vazias.Como por
exemplo a TxtDataNasc.text.


Quando eu for montar a intrução [Ô]INSERT[Ô] para submeter ao Banco de dados,os campos
DateTime não aceitarão valores em branco.Claro que os colegas estão sugerindo que eu use
o DBNull.Value.Mas, me ocorreu o seguinte...

Como eu não sei se o usuário irá preencher a data ou não,como vou saber se na criação
da intrução Sql para o INSERT,deverei usar o DBNull.Value???????


Uma resposta óbvia é que eu posso usar um IF(Condicional) ao montar a INSERT.De modo
que,quando eu tiver em branco o campo de data (TxtNasc.text,por exemplo),eu monto
uma instrução INSERT,se estiver preenchida monto outra,e assim por diante.Mas...

na minha opinião não gosto desta solução.


Será que não existe um modo de se montar minha instrução Sql (INSERT), de uma vez só,
independente dos campos de data estarem ou não preenchidos pelo usuário??????
JONATHANSTECKER 05/07/2011 10:57:30
#378504
Desconheço outra alternativa.
Tópico encerrado , respostas não são mais permitidas