Informacje o wyrażeniach i dostawcach danych

Funkcje wyrażeń w większości zachowują się identycznie w przypadku wszystkich dostawców, ale istnieje kilka wyjątków.

Funkcje nieobsługiwane

Podczas tworzenia filtra lub wartości obliczonej można używać dowolnych funkcji. Wyniki nie są zapisywane w składnicy danych. Jeśli jednak w programie Zestaw narzędzi AutoCAD Map 3D zostanie użyta funkcja, która zwraca nieobsługiwany typ danych do wstawienia wartości do Tabeli danych, powstanie wyjątek. Ta operacja nie znajduje zastosowania w dostawcy danych. Na przykład pliki SHP nie obsługują typów danych FdoInt16 ani FdoDouble. W przypadku próby zapisania wartości danych tego typu do składnicy danych SHP zostanie wyświetlony błąd.

Dostawcy ODBC

W programie Zestaw narzędzi AutoCAD Map 3D wyrażenie można zastosować przed połączeniem się ze składnicą danych. Na przykład można użyć zapytania w celu dodania elementów do mapy. Taka sytuacja może być problemem dla dostawców ODBC, w przypadku których istnieje możliwość połączenia z wieloma źródłami danych. Nie wszystkie źródła ODBC obsługują funkcje wyrażeń. Z tego względu zawsze w procesie tworzenia wyrażenia funkcje są oceniane, nawet jeśli ta czynność może zostać wykonana w podłączonym źródle danych.

Soundex

Funkcja Soundex jest bezpośrednio obsługiwana we wszystkich relacyjnych systemach zarządzania bazami danych (RDBMS). Podstawowe systemy RDBMS wyznaczają wartości dla wszelkich wyrażeń, łącznie z tą funkcją. Jednak wynik zwracany przez dostawcę MySQL może być inny od wyników otrzymanych od innych dostawców.

Przedstawienie wartości logicznej

Dostawcy SDF i SHP przedstawiają wartość logiczną za pomocą wyrażeń PRAWDA i FAŁSZ. Dostawcy RDBMS przedstawiają wartość logiczną za pomocą cyfr 0 i 1. Ta różnica może mieć wpływ na wyświetlanie etykiet. Na przykład następujące wyrażenie definiuje etykietę, która wskazuje, czy zawór jest otwarty:

Concat('Zawór jest otwarty: ', <wartość_stan_właściwość>)

W przypadku danych SDF i SHP etykieta wygląda następująco: „Zawór jest otwarty: Prawda”. W przypadku danych RDBMS etykieta wygląda następująco: „Zawór jest otwarty: 1”.

Funkcje AddMonths i MonthsBetween

Funkcje AddMonths i MonthsBetween nie uwzględniają informacji o dniach w przeciwieństwie do systemów RDBMS.

Na przykład dla wyrażenia AddMonths(<data_właściwość>, 88,7) dostawca RDBMS może dodać 88,7 miesięcy do daty wyjściowej. Funkcja zawarta w wyrażeniach tworzonych w produkcie dodaje tylko 88 miesięcy.

Podobnie w przypadku wyrażenia MonthsBetween(<dane_1>, <dane_2>) dostawca RDBMS może zwrócić wartość 77,4. Funkcja zawarta w wyrażeniach tworzonych w produkcie zwraca wartość 77.

Operacje oparte na pamięci podręcznej a operacje oparte na systemach RDBSM

Niektóre operacje (np. tworzenie obliczonej wartości) są operacjami opartymi na pamięci podręcznej; do ich oceny jest wykorzystywany proces tworzenia wyrażenia. Inne operacje (filtrowanie składnicy danych RDBMS) wykorzystują podstawowy system RDBMS.

Ze względu na różnice między dostawcami, wyniki mogą się różnić. Przypuśćmy, że nawiązane zostało połączenie ze składnicą danych MySQL i utworzone zostały dwie właściwości obliczone: CP1 i CP2. Właściwość CP1 została zdefiniowana przez wyrażenie Soundex(<właściwość>) , a CP2 przez wyrażenie Soundex(<literałowy>). W Tabeli danych wartości CP1 i CP2 mogą być takie same. Jednak w przypadku użycia filtra zawierającego wyrażenie Soundex(<właściwość>) = Soundex(<literałowy>) wartości wynikowe mogą się różnić. W programie Zestaw narzędzi AutoCAD Map 3D, w Tabeli danych wartości wyrażeń są wyznaczane w procesie budowania wyrażeń. Składnica danych MySQL (która korzysta z innej definicji funkcji) wyznacza wartość dla filtra.