VALIDACAO DATA FIREBIRD

ADRIANOM 23/01/2014 23:45:57
#433474
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.


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.
FILMAN 24/01/2014 00:46:44
#433479
Resposta escolhida
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
GUIMORAES 24/01/2014 08:47:58
#433486
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
ADRIANOM 24/01/2014 09:13:27
#433491
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
MARCOSFSAN20 24/01/2014 09:19:27
#433492
Quando o campo estiver vazio passe NULL e não [Ô][ô][ô][Ô].....detalhe não use aspas simples para o valo NULL.
GUIMORAES 24/01/2014 09:31:01
#433496
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).
ADRIANOM 24/01/2014 09:44:59
#433498
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).
OMAR2011 24/01/2014 10:26:01
#433503
Olha o que KERPLUNK te mostrou.

http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=433008
ADRIANOM 24/01/2014 11:21:58
#433507
OMAR2011

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.
MARCOSFSAN20 24/01/2014 11:37:57
#433511
tente assim:

sSQL = sSQL & IIf(txtAdmissao.Text = [Ô][Ô], [Ô] Null [Ô], [Ô][ô][Ô] & Format(CDate(txtAdmissao.Text), [Ô]yyyy/MM/dd[Ô]) & [Ô][ô],[Ô] )
FILMAN 24/01/2014 12:56:40
#433520
Tente assim

sSQL = sSQL & [Ô][ô][Ô] & IIf(IsDate(txtAdmissao.Text) = False, [Ô]Null[Ô], Format(txtAdmissao.Text, [Ô]yyyy/MM/dd[Ô])) & [Ô][ô],[Ô]
Página 1 de 4 [31 registro(s)]
Tópico encerrado , respostas não são mais permitidas