Qual a diferença entre os dados da query que a variavel pego

Delphi

28/05/2008

Tem alguma diferença entre estes dois if´s aqui?
[color=red:46966e8c81]//LPedidoR := TPedido_Reservar.Create(fr_FmGradePedido.qrySelecionado[´num_pedido´]);[/color:46966e8c81]
[color=blue:46966e8c81]LPedidoR := TPedido_Reservar.Create(fr_FmGradePedido.qrySelecionado.FieldByName(´num_pedido´).AsInteger);[/color:46966e8c81]

A que esta em vermelho me trava o sistema

A que esta em azul funciona.

Por isso gostaria de saber se existe diferença entre uma e outra, se o que ela me traz para variavel é os mesmos dados.


Adriano_servitec

Adriano_servitec

Curtidas 0

Respostas

Catunda

Catunda

28/05/2008

Na linha em vermelho, se ´num_pedido´ for nula ou vazia dará um erro de incompatibilidade.
Na linha em azul, ao utilizar o ´.AsInteger´ o valor será sempre convertido para um inteiro. Caso esteja nulo ou vazia vem como 0(zero).
Resumindo: a utilização das definições asinteger, asstring convertem um valor nulo ou vazio para o semelhante mais próximo.


GOSTEI 0
Adriano_servitec

Adriano_servitec

28/05/2008

Na linha em vermelho, se ´num_pedido´ for nula ou vazia dará um erro de incompatibilidade. Na linha em azul, ao utilizar o ´.AsInteger´ o valor será sempre convertido para um inteiro. Caso esteja nulo ou vazia vem como 0(zero). Resumindo: a utilização das definições asinteger, asstring convertem um valor nulo ou vazio para o semelhante mais próximo.
Obrigado pela resposta amigo, vi aqui quando debugo que a linha em vermelho esta travando o sistema, a que esta em azul esta me trazendo um valor diferente

agora assim

[color=green:665b09c725]LPedidoR := TPedido_Reservar.Create(fr_FmGradePedido.qrySelecionado.FieldByName(´num_pedido´).Value);[/color:665b09c725]

a variavel pega o valor certo, sabe me dizer o porque?


GOSTEI 0
Eniorm

Eniorm

28/05/2008

o campo num_pedido na sua tabela foi definido como inteiro ?


GOSTEI 0
Adriano_servitec

Adriano_servitec

28/05/2008

[quote:ca286df466=´Enio Marconcini´]o campo num_pedido na sua tabela foi definido como inteiro ?[/quote:ca286df466]Não é um campo tipo numeric 12,0


GOSTEI 0
Paulo_amorim

Paulo_amorim

28/05/2008

Olá

Se eu ainda me lembro, pegar como Value é um tipo genérico, que consome mais recursos.
Vale a pena um F1 no Value pra ver no Help o seu comportamento.

Espero que ajude
Até+


GOSTEI 0
POSTAR