Fórum Could not convert variant of type (null) into type double? #327736
18/08/2006
0
1 | select FILIAIS.codigo as COD_FILIAL, FILIAIS.nome_filial as NOME_FILIAL, LOC.CODIGO as LOCACAO, LOC.cliente as CLIENTE, LOC.locatario as LOCATARIO, LOC.data as SAIDA, LOC.dataretorno as RETORNO, DET.COD_FILME as FILME, DET.NOME_FILME as TITULO, DET.valor_filme as VALOR from LOCACAO LOC left join DETLOCACAO DET on (DET.LOCACAO=LOC.CODIGO) left join filiais on (loc.cod_filial = FILIAIS.codigo) where DET.DEVOLVIDO =´N´ |
quando faço uma pesquisa que não é retornado nada ele apresenta esse erro, o que pode ser...?

Paullsoftware
Curtir tópico
+ 0Posts
18/08/2006
Tnaires
O q vc faz depois que chama um Open? Talvez seu programa esteja usando o valor de um dos campos da consulta sem verificar a propriedade IsEmpty do DataSet.
Gostei + 0
19/08/2006
Paullsoftware
nada...
antes do open eu inclemento o código para fazer uma busca na tabela assim:
1 2 3 4 | aux := ´ select FILIAIS.codigo as COD_FILIAL, FILIAIS.nome_filial as NOME_FILIAL, LOC.CODIGO as LOCACAO, LOC.cliente as CLIENTE, LOC.locatario as LOCATARIO, LOC.data as SAIDA, LOC.dataretorno as RETORNO, DET.COD_FILME as FILME, DET.NOME_FILME as TITULO, DET.valor_filme as VALOR from LOCACAO LOC left join DETLOCACAO DET on (DET.LOCACAO=LOC.CODIGO) left join filiais on (loc.cod_filial = FILIAIS.codigo) where DET.DEVOLVIDO =´´N´´ and LOC.CLIENTE =:PCLIENTE ´; Params.ParamByName(´PCLIENTE´).AsString := Edit1.Text; Open; |
o erro ocorre quando a consulta não retorna nenhum registro, eu queria substituir o erro por uma mensagem, tipo: ´A consulta não retornou nenhum registro´ aos invés do erro!
como faço isso?
Gostei + 0
19/08/2006
Tnaires
Use try / except
Mas é estranho ocorrer um erro só pq a consulta não retornou nenhum registro... Quando vc executa essa consulta no banco, ocorre algum erro?
Gostei + 0
19/08/2006
Paullsoftware
Use try / except
Mas é estranho ocorrer um erro só pq a consulta não retornou nenhum registro... Quando vc executa essa consulta no banco, ocorre algum erro?[/quote:5af99cbb07]
não...
simplesmente não retorna nada, mais quando executo pela aplicação retorna esse erro, não fiz nada a mais, não existe campos temporários, nada, simplesmente os campos trazidos da tabela...
apropósito, já estou usando o código dentro do try except... :cry:
Gostei + 0
19/08/2006
Paullsoftware
Eu criei uma view para fazer a consulta e testar, e usei um outro dataset daí funcionou perfeitamente, quando voltei para aplicação e abri o [b:f896100bf2]Fields Editor[/b:f896100bf2] percebi que estava usando o evento OnGetText do Field Codigo e fui dar uma olhada, eu sempre uso esse evento, mais nesse expecifico estava assim:
1 | Text := FormatFloat(´00000´,Sender.Value); |
onde o correte seria:
1 2 | if not Sender.IsNull then //quando não for nulo formatar para Text := FormatFloat(´00000´,Sender.Value); |
valeu pela ajuda :wink:
Gostei + 0
20/08/2006
Tnaires
Abraços
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)