GRAVAR DATA EM BRANCO MYSQL

ADILSOO 27/07/2017 21:25:09
#475475
Boa noite pessoal!
Alguém sabe de alguma forma que se grave data em branco no MySQL?
KERPLUNK 27/07/2017 21:45:15
#475479
Está falando de um valor Null? Não existe [Ô]data em branco[Ô], existe [Ô]nenhum valor[Ô].
ADILSOO 28/07/2017 20:09:43
#475501
Seria uma data nula, ou seja, valor null. Eu estou fazendo assim...
Pois a mascara é [Ô]__/__/____[Ô], então, se estiver vazio, ele coloca Null, mas não está funcionando.
Me da a mensagem, invalid use of null

Dim xUltimoDia As Date

If txtultimodia.Text = [Ô]__/__/____[Ô] Then xUltimoDia = Null Else xUltimoDia = txtultimodia.Text

Conexao.Execute ([Ô]UPDATE tabcadfuncionario SET ultimodia = [ô][Ô] & Format(xUltimoDia, [Ô]YYYY-MM-DD[Ô]) & [Ô][ô] WHERE codfuncionario = [ô][Ô] & txtcodfuncionario.Text & [Ô][ô][Ô])
JABA 28/07/2017 20:24:35
#475502
Você tem que usar o NOTHING no lugar do Null. Fica assim:

If txtultimodia.Text = [Ô]__/__/____[Ô] Then xUltimoDia = [txt-color=#e80000]NOTHING[/txt-color] Else xUltimoDia = txtultimodia.Text

ADILSOO 29/07/2017 14:41:36
#475511
Citação:

:
Você tem que usar o NOTHING no lugar do Null. Fica assim:

If txtultimodia.Text = [Ô]__/__/____[Ô] Then xUltimoDia = [txt-color=#e80000]NOTHING[/txt-color] Else xUltimoDia = txtultimodia.Text


Então, mas quando faço isso, aparece a mensagem de erro....
ADILSOO 29/07/2017 15:27:33
#475513
& [Ô][ô], ultimodia = [ô][Ô] & IIf((txtultimodia.Text = [Ô]__/__/____[Ô]), Null, Format(txtultimodia.Text, [Ô]YYYY-MM-DD[Ô])) & [Ô][ô], horapadrao = [ô][Ô] & xHoraPadrao _


Tentei gravar dessa maneira também usando o iff dentro do SQL, mas não to conseguindo incluir o null ali no meio. Pois me da Incorrect data value.
JABA 29/07/2017 15:49:48
#475516
No Vb.Net existe a propriedade DBNull, não lembro como isso se dá no vb6, talvez seja a mesma coisa. Se for, é só usar no lugar do null ou Nothing.

Verifique o valor da variável, talvez não esteja ficando com o valor vazio. Verifique também se o formato da data está sendo formatado corretamente, talvez o banco não esteja aceitando-a. Faça um teste manual, depois aplique o mesmo princípio para a sua consulta.
ADILSOO 29/07/2017 16:13:39
#475517
kkkk, vbnull ele até gravou, mas não gravou null, gravou 31/12/1899, estranho né?
JABA 29/07/2017 17:06:59
#475519
Verifique se o campo está configurado para receber o valor null como padrão.
ALVAROVB2009 04/08/2017 08:55:39
#475610
Adilsoo primeira pergunta, o seu campo no banco de dados esta como data???
Porque se ele gravou a palavra dbnull como entendi, não está como data e sim deve estar como texto

Caso estiver como texto, primeiro colocar o tipo do campo para data, desde que tenha as datas gravadas no seguinte formato YYYY-MM-DD, ai vc vai conseguir mudar o tipo sem problema
Caso esteja como data, aqui vão duas formas de colocar Null na data, uma usando o famoso recorset e outra usando o sql
Aqui é no recorset
Tb!dtCredito = IIf(dtCredito <> [Ô]0000-00-00[Ô], dtCredito, Null)
Aqui é no sql
StrSql = StrSql & [Ô] dataabertura = [Ô] & IIf(Trim(LblDataAbertura.Caption) = [Ô][Ô], [Ô]Null[Ô], Format(LblDataAbertura.Caption, [Ô][ô]YYYY-MM-DD[ô][Ô]))
StrSql = StrSql & [Ô],DataUltimaConsulta= [Ô] & IIf(Trim(LblDataUltimaConsulta.Caption) = [Ô][Ô], [Ô]Null[Ô], Format(LblDataUltimaConsulta.Caption, [Ô][ô]YYYY-MM-DD[ô][Ô]))

Repare que eu formatei a data dentro no format e somente ali coloquei as aspas simples, porque a palavra Null tem que ir para o comando sem nenhuma aspas, senão ele entende como uma palavra e não como um comando

Já no recordset é um pouco mais fácil de mandar um null para a data, como pode ver
Qqer coisa posta ai, e caso tenha ajudado não esqueça de fechar o tópico e pontuar
Tópico encerrado , respostas não são mais permitidas