VALIDACAO DATA FIREBIRD
Pessoal,
Em várias situações que postei aqui, com erros em validação dos dados, não notei que meu campo de data estava com a atribuição no banco de dados com VarChar. Agora alterei para Date e me gera um erro na hora da conversão dos dados.
Atualmente uso um TextBox com uma função para validar o formato das datas no form em dd/mm/yyyy. Quando clico em Salvar, a função modifica o formato para yyyy/mm/dd conforme os padrões do Firebird.
Atualmente utilizo esta linha de código para salvar a data na tabela.
O erro é no momento da conversão. Parece que ele não aceita o valor [Ô][Ô] do campo txtAdmissao.
Qual é mesmo o formato certo? Realmente esqueci.Lembrando que no banco de dados o campo Admissao está como DATE.
Em várias situações que postei aqui, com erros em validação dos dados, não notei que meu campo de data estava com a atribuição no banco de dados com VarChar. Agora alterei para Date e me gera um erro na hora da conversão dos dados.
Atualmente uso um TextBox com uma função para validar o formato das datas no form em dd/mm/yyyy. Quando clico em Salvar, a função modifica o formato para yyyy/mm/dd conforme os padrões do Firebird.
Atualmente utilizo esta linha de código para salvar a data na tabela.
sSQL = sSQL & [Ô][ô][Ô] & IIf(txtAdmissao.Text = [Ô][Ô], Empty, Format(txtAdmissao.Text, [Ô]yyyy/MM/dd[Ô])) & [Ô][ô],[Ô]
O erro é no momento da conversão. Parece que ele não aceita o valor [Ô][Ô] do campo txtAdmissao.
Qual é mesmo o formato certo? Realmente esqueci.Lembrando que no banco de dados o campo Admissao está como DATE.
não sei se o seu FireBird é parecido com o meu, porém eu utilizo parâmetros para salvar no banco, mas após salvar ele salva assim dd.MM.yyyy
Com parâmetros isto não iria ocorrer, mas como você não está utilizando parâmetros, tente fazer assim:
sSQL = sSQL & [Ô][ô][Ô] & IIf(txtAdmissao.Text = [Ô][Ô], Empty, Format(CDate(txtAdmissao.Text), [Ô]MM/dd/yyyy[Ô])) & [Ô][ô],[Ô]
Não sei a sua versão do firebird, mas a versão que utilizo o formato da data é assim : MM/dd/yyyy
sSQL = sSQL & [Ô][ô][Ô] & IIf(txtAdmissao.Text = [Ô][Ô], Empty, Format(CDate(txtAdmissao.Text), [Ô]MM/dd/yyyy[Ô])) & [Ô][ô],[Ô]
Não sei a sua versão do firebird, mas a versão que utilizo o formato da data é assim : MM/dd/yyyy
Firebird 2.0
Me expliquei sobre o parâmetros... as vezes já utilizei até sem ter a noção (source code).
Testei sua sugestão GUIMORAES123 e o erro continua o mesmo.
Segue a tela
Me expliquei sobre o parâmetros... as vezes já utilizei até sem ter a noção (source code).
Testei sua sugestão GUIMORAES123 e o erro continua o mesmo.
Segue a tela
Quando o campo estiver vazio passe NULL e não [Ô][ô][ô][Ô].....detalhe não use aspas simples para o valo NULL.
você está tentando converter um campo vazio, provavelmente a data está em branco. Faça como o amigo disse acima, ao passar valor nulo utilize o NULL e não [Ô][Ô] (nulo é diferente de valor em branco).
MARCOSFSAN20 e GUIMORAES123
Não sei se eu entendi corretamente, mas pelo que você me instruiu, devo trocar o EMPTY por NULL, certo?
sSQL = sSQL & [Ô][ô][Ô] & IIf(txtAdmissao.Text = [Ô][Ô], Null, Format(CDate(txtAdmissao.Text), [Ô]yyyy/MM/dd[Ô])) & [Ô][ô],[Ô]
Caso tenha entendido certo, o erro continua...
Agora me expliquem, com exemplo, o que é usar parâmetros que todos falam? (eu não me pego muito com as terminologias técnicas).
Não sei se eu entendi corretamente, mas pelo que você me instruiu, devo trocar o EMPTY por NULL, certo?
sSQL = sSQL & [Ô][ô][Ô] & IIf(txtAdmissao.Text = [Ô][Ô], Null, Format(CDate(txtAdmissao.Text), [Ô]yyyy/MM/dd[Ô])) & [Ô][ô],[Ô]
Caso tenha entendido certo, o erro continua...
Agora me expliquem, com exemplo, o que é usar parâmetros que todos falam? (eu não me pego muito com as terminologias técnicas).
Olha o que KERPLUNK te mostrou.
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=433008
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=433008
OMAR2011
Não sei fazer....rs.. volto para esta prancheta que estou agora tentando....rs.
tento salvar um campo de data vazio e ele não aceita.... no banco de dados está autorizado a receber valor vazio.
Não sei fazer....rs.. volto para esta prancheta que estou agora tentando....rs.
sSQL = sSQL & [Ô][ô][Ô] & IIf(txtAdmissao.Text = [Ô][Ô], Null, Format(CDate(txtAdmissao.Text), [Ô]yyyy/MM/dd[Ô])) & [Ô][ô],[Ô]
tento salvar um campo de data vazio e ele não aceita.... no banco de dados está autorizado a receber valor vazio.
tente assim:
sSQL = sSQL & IIf(txtAdmissao.Text = [Ô][Ô], [Ô] Null [Ô], [Ô][ô][Ô] & Format(CDate(txtAdmissao.Text), [Ô]yyyy/MM/dd[Ô]) & [Ô][ô],[Ô] )
sSQL = sSQL & IIf(txtAdmissao.Text = [Ô][Ô], [Ô] Null [Ô], [Ô][ô][Ô] & Format(CDate(txtAdmissao.Text), [Ô]yyyy/MM/dd[Ô]) & [Ô][ô],[Ô] )
Tente assim
sSQL = sSQL & [Ô][ô][Ô] & IIf(IsDate(txtAdmissao.Text) = False, [Ô]Null[Ô], Format(txtAdmissao.Text, [Ô]yyyy/MM/dd[Ô])) & [Ô][ô],[Ô]
Tópico encerrado , respostas não são mais permitidas