A maioria das funções de expressões se comportam da mesma forma através de todos os provedores de dados, mas há algumas exceções.
É possível utilizar qualquer função ao criar um filtro ou uma propriedade calculada. Estes resultados não são salvos de volta no armazenamento de dados. No entanto, no Conjunto de ferramentas do AutoCAD Map 3D, o usado uma função que retorna um tipo de dados incompatível para inserir um valor na Tabela de dados resultará em uma exceção. Essa operação não é válida para o provedor de dados. Por exemplo, arquivos SHP não suportam os tipos de dados FdoInt16 ou FdoDouble. Se tentar salvar um valor deste tipo de dado de volta para um armazenamento de dados SHP, ocorre um erro.
No Conjunto de ferramentas do AutoCAD Map 3D, você pode aplicar uma expressão antes de se conectar ao armazenamento de dados. Por exemplo, é possível usar uma consulta para adicionar recursos a um mapa. Esta situação pode ser um problema para provedores ODBC, que podem se conectar a várias origens de dados. Nem todas as fontes ODBC suportam funções de expressões. Por este motivo, as funções são avaliadas como parte do processo de criação de expressão em todos os casos, mesmo se a fonte de dados conectada puder fazer isso.
A função Soundex é suportada de forma nativa por todos os sistemas de gerenciamento de banco de dados relacionais (RDBMS). O RDBMS subjacente avalia qualquer expressão, incluindo esta função. No entanto, o resultado devolvido por um provedor MySQL pode diferir do resultado recebido de outros provedores.
Provedores SDF ou SHP representam um valor Booleano com os termos VERDADEIRO ou FALSO. Provedores RDBMS representam um valor Booleano com 0 e 1. Essa diferença pode afetar a exibição de legendas. Por exemplo, a seguinte expressão define uma legenda que indica se uma válvula está aberta:
Concat(‘Válvula aberta: ', <valve_status_property>)
Para dados SDF ou SHP, a legenda irá ler ”Válvula aberta: Verdadeiro”. Para dados RDBMS, a legenda irá ler, “Válvula aberta:1.”
As funções AddMonths e MonthsBetween não levam informações de dia em conta, mas os sistemas RDBMS levam.
Por exemplo, para a expressão AddMonths (<date_property> 88.7), um provedor de RDBMS pode adicionar 88.7 meses para a data fornecida. A função em expressões que for criada no produto adiciona somente 88 meses.
Da mesma forma, para a expressão MonthsBetween (<date_1>,<date_2>), um provedor RDBMS pode retornar um valor de 77.4. A função em expressões que for criada no produto retorna 77.
Algumas operações (por exemplo, a criação de uma propriedade calculada) são operações com base em cache e utilizam o processo de criação de expressão para avaliação. Outras operações (por exemplo, um filtro em um armazenamento de dados RDBMS) utiliza o sistema subjacente RDBMS.
Devido às diferenças entre os provedores, os resultados podem ser diferentes. Por exemplo, se você se conectar a um armazenamento de dados MySQL, é possível criar duas propriedades calculadas: CP1 e CP2. CP1 é definida pela expressão Soundex(<property>) e CP2 é definida pela expressão Soundex(<literal>). Na Tabela de dados, o valor para CP1 e CP2 podem ser idênticos. No entanto, se utilizar um filtro que contém a expressão Soundex(<property>) = Soundex(<literal>), os valores resultantes podem ser diferentes. Na Tabela de dados no Conjunto de ferramentas do AutoCAD Map 3D, o processo de criação de expressão avalia as expressões. O armazenamento de dados MySQL (que utiliza uma definição de função diferente) avalia o filtro.