Fórum como o pascal lê um IF #421960
18/08/2012
0
Olá pessoal...
Estou com uma dúvida sobre qual sentido o compilador lê as instruções.
Tenho o seguinte comando: if (FieldByName(gp).AsString = ) and (not FieldByName(gp).IsNull) then
quem ele verificará primeiro?
(FieldByName(gp).AsString = )
ou
(not FieldByName(gp).IsNull)
o motivo da pergunta é que ele dá um erro se eu for fazer uma comparação string com um campu nulo.
agradeço desde já qualquer ajuda...
Estou com uma dúvida sobre qual sentido o compilador lê as instruções.
Tenho o seguinte comando: if (FieldByName(gp).AsString = ) and (not FieldByName(gp).IsNull) then
quem ele verificará primeiro?
(FieldByName(gp).AsString = )
ou
(not FieldByName(gp).IsNull)
o motivo da pergunta é que ele dá um erro se eu for fazer uma comparação string com um campu nulo.
agradeço desde já qualquer ajuda...
Vagner Almeida
Curtir tópico
+ 0
Responder
Posts
18/08/2012
Douglas Michelino
Toda linha de codigo Le de cima para baixo da esquerda para direita...
Ou seja
(FieldByName(gp).AsString = ) << le primeiro
ou
(not FieldByName(gp).IsNull) << le depois
(FieldByName(gp).AsString = )
ou
(not FieldByName(gp).IsNull)
Tenta por assim
If (not(FieldByName(gp).IsNull)) and (FieldByName(gp).AsString <> '') then
ou
If not(FieldByName(gp).IsNull) and (FieldByName(gp).AsString <> '') then
Ou seja
(FieldByName(gp).AsString = ) << le primeiro
ou
(not FieldByName(gp).IsNull) << le depois
(FieldByName(gp).AsString = )
ou
(not FieldByName(gp).IsNull)
Tenta por assim
If (not(FieldByName(gp).IsNull)) and (FieldByName(gp).AsString <> '') then
ou
If not(FieldByName(gp).IsNull) and (FieldByName(gp).AsString <> '') then
Responder
Gostei + 0
18/08/2012
Eduardo Gonçalves
De qualquer jeito, como se trata de um IF com AND, as duas condições precisarão ser válidas para que o programa "entre no IF". Desta forma, para o exemplo que você apresentou, acaba sendo indiferente o sentido da leitura.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)