No uso C++ (que afortunado!) pero ya que no te han explicado porque pasa esto, aqui va algo pa que no olvides, y que muchos lenguajes es lo mismo:
Cita:
Empezado por Angel.Matilla
cAux = UpperCase(fPersona->Query->FieldByName("Literal")->AsString);
if (lPrueba && (cAux == "DESCONOCIDA" || cAux == NULL))
|
https://stackoverflow.com/questions/...uit-evaluation
Por regla general, los AND y los OR utilizan "short circuit" y siguen la regla de las tablas de verdad. En este caso, si la 1era opcion en AND es verdadera, NO CHEQUEA LA SEGUNDA. Y lo mismo aplica en el OR
True And False = True
False OR True = True
El segundo problema es que UpperCase si te esta volviendo NULL? O cadena vacia?.