Compilation de code MOF avec des valeurs Floating-Point

Le compilateur MOF accepte une valeur à virgule flottante spécifiée pour une propriété à virgule flottante. La valeur est arrondie vers le haut ou vers le haut et stockée sous la forme d’un nombre à virgule flottante. Cette situation peut entraîner des résultats inattendus.

L’exemple de code MOF suivant définit une classe appelée ABC dans un espace de noms appelé « test ». Ce code MOF est compilé sans erreurs, mais vous ne pouvez pas interroger la valeur à virgule flottante définie pour la propriété exampleUint16 dans l’instance créée par ce code.

#pragma namespace ("\\\\.\\Root")

instance of __Namespace
{
    Name = "Test";
};

#pragma namespace ("\\\\.\\Root\\test")

Class abc
{
        [KEY] String testID ;
        Uint16 exampleUint16;
        Real64 exampleReal64;
};

Instance of abc
{ 
        TestID ="exampleID";
        exampleUint16 = 1000.4;
};

Si vous exécutez la requête suivante, vous recevez un code d’erreur qui indique une requête non valide.

SELECT * FROM abc WHERE exampleUint16 = 1000.4

Toutefois, la requête suivante recherche l’instance indiquée.

SELECT * FROM abc WHERE exampleUint16 = 1000

Compilation des fichiers MOF

mofcomp

Commandes de préprocesseur