Udostępnij przez


Kompilowanie kodu MOF przy użyciu wartości Floating-Point

Kompilator MOF akceptuje wartość zmiennoprzecinkową określoną dla właściwości nonfloating-point. Wartość jest zaokrąglana w górę lub w dół i przechowywana jako liczba całkowita. Taka sytuacja może spowodować nieoczekiwane wyniki.

Poniższy przykład kodu MOF definiuje klasę o nazwie abc w przestrzeni nazw o nazwie "Test". Ten kod MOF kompiluje się bez błędów, ale nie można wykonać zapytania o wartość zmiennoprzecinkową zdefiniowaną dla właściwości przykładUint16 w wystąpieniu tworzonym przez ten kod.

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

Jeśli wydasz następujące zapytanie, zostanie wyświetlony kod błędu wskazujący nieprawidłowe zapytanie.

SELECT * FROM abc WHERE exampleUint16 = 1000.4

Jednak następujące zapytanie znajduje wskazane wystąpienie.

SELECT * FROM abc WHERE exampleUint16 = 1000

kompilowanie plików MOF

mofcomp

polecenia preprocesora