PDA

Ver la Versión Completa : Could not convert variant of type (Null) into type (Integer)


Alejo15x
30-11-2010, 07:19:02
Hola!

Tengo un problemita con el cual nunca eh lidiado.
Es en sistemas XML, en el cual estoy usando un entero, pero aveces cierta función no existe osea NULA, de modo que no encuentra el entero y me tira error.

Could not convert variant of type (Null) into type (Integer)


case OutfitsList.Outfit[tempOutfitId].Premium of
0 :
boolPremiumOutfit.Checked := false;
1 :
boolPremiumOutfit.Checked := true;
end;

Estifmauin
30-11-2010, 09:48:51
Simplemente, antes de entrar en el case, comprueba si el valor es nulo, y en caso afirmativo asígnale el valor x defecto:

if OutfitsList.Outfit[tempOutfitId].Premium = NULL then
boolPremiumOutfit.Checked := false //el valor x por defecto
else
// entras en el case

para evaluar la constante NULL, debes incluir uses variant, aunque supongo que ya lo tienes.

OJO: compara con NULL, no con nil. Son cosas distintas.

Neftali [Germán.Estévez]
30-11-2010, 17:35:50
También puedes utilizar la función VarIsNull() especficamente diseñada para ello.


if VarIsNull(OutfitsList.Outfit[tempOutfitId].Premium ) then begin

// lo que sea si es nulo
...
end
else begin
case OutfitsList.Outfit[tempOutfitId].Premium of
0 :
boolPremiumOutfit.Checked := false;
1 :
boolPremiumOutfit.Checked := true;
end;
end;