Fórum Could not convert variant of type (null) into type double? #327736

18/08/2006

0

o meu ClientDataSet está com esse codigo dentro do CommandText..
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

Paullsoftware

Responder

Posts

18/08/2006

Tnaires

Olá
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.


Responder

Gostei + 0

19/08/2006

Paullsoftware

Olá 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.


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?


Responder

Gostei + 0

19/08/2006

Tnaires

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?

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?


Responder

Gostei + 0

19/08/2006

Paullsoftware

[quote:5af99cbb07=´paullsoftware´] 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?

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:


Responder

Gostei + 0

19/08/2006

Paullsoftware

Acabei de encontrar o erro...
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:


Responder

Gostei + 0

20/08/2006

Tnaires

Blz!!
Abraços


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar