GRAVAR DATA EM BRANCO MYSQL
Boa noite pessoal!
Alguém sabe de alguma forma que se grave data em branco no MySQL?
Alguém sabe de alguma forma que se grave data em branco no MySQL?
Está falando de um valor Null? Não existe [Ô]data em branco[Ô], existe [Ô]nenhum valor[Ô].
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
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 & [Ô][ô][Ô])
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
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....
& [Ô][ô], 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.
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.
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.
kkkk, vbnull ele até gravou, mas não gravou null, gravou 31/12/1899, estranho né?
Verifique se o campo está configurado para receber o valor null como padrão.
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
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