Dela via


Kompilera MOF-kod med Floating-Point-värden

MOF-kompilatorn accepterar ett flyttalvärde som angetts för en egenskap som inte är en flytande punkt. Värdet avrundas uppåt eller nedåt och lagras som ett icke-flytande punktnummer. Den här situationen kan orsaka oväntade resultat.

Följande MOF-kodexempel definierar en klass med namnet abc i ett namnområde med namnet "Test". Den här MOF-koden kompileras utan fel, men du kan inte fråga efter flyttalsvärdet som definierats för egenskapen exempelUint16 i den instans som koden skapar.

#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;
};

Om du utfärdar följande fråga får du en felkod som anger en ogiltig fråga.

SELECT * FROM abc WHERE exampleUint16 = 1000.4

Följande fråga hittar dock den angivna instansen.

SELECT * FROM abc WHERE exampleUint16 = 1000

Kompilering av MOF-filer

mofcomp

förprocessorkommandon