Acerca de las expresiones y los proveedores de datos

La mayoría de las funciones de expresión se comportan de la misma manera en todos los proveedores de datos, con pequeñas excepciones.

Funciones no admitidas

Al crear un filtro o una propiedad calculada, se puede utilizar cualquier función. Estos resultados no se volverán a guardar en el banco de datos. No obstante, en Conjunto de herramientas AutoCAD Map 3D, si utiliza una función que devuelve un tipo de datos no admitido para insertar un valor en la Tabla de datos, se mostrará una excepción. Esta operación no es válida para el proveedor de datos. Por ejemplo, los archivos SHP no son compatibles con los tipos de datos FdoInt16 o FdoDouble. Si intenta volver a guardar un valor de ese tipo de datos en un banco de datos SHP, obtendrá un error.

Proveedores ODBC

En Conjunto de herramientas AutoCAD Map 3D, se puede aplicar una expresión antes de conectarse realmente al banco de datos. Por ejemplo, puede utilizar una consulta para añadir elementos a un mapa. Esta situación puede suponer un problema en el caso de proveedores ODBC, que se pueden conectar a varios bancos de datos. No todos los orígenes ODBC admiten funciones de expresiones. Por este motivo, las funciones se evalúan como parte del proceso de construcción de expresiones en todos los casos, incluso si el origen de datos conectado puede hacerlo.

Soundex

Todos los sistemas de gestión de bases de datos relacionales (SGBDR) admiten la función Soundex de forma nativa. El SGBDR subyacente evalúa las expresiones que incluyen esta función. No obstante, el resultado que devuelve un proveedor MySQL puede diferir del resultado que se recibe de otros proveedores.

Representación de valores booleanos

Los proveedores SDF y SHP representan un valor booleano mediante los términos VERDADERO y FALSO; mientras que los proveedores de SGBDR representan los valores booleanos mediante 0 y 1. Esta diferencia puede afectar a la manera de visualizar las etiquetas. Por ejemplo, la siguiente expresión define una etiqueta que indica si una válvula está abierta:

Concat('Valve is open: ', <propiedad_estado_válvula>)

En el caso de datos SDF y SHP, la etiqueta mostrará: “Valve is open: Verdadero”. En el caso de datos SGBDR, la etiqueta mostrará: “'Valve is open: 1”.

AddMonths y MonthsBetween

Las funciones AddMonths y MonthsBetween no tienen en cuenta la información en días, a diferencia de los sistemas SGBDR.

Por ejemplo, para la expresión AddMonths(<propiedad_fecha>, 88.7), un proveedor de SGBDR podría añadir 88.7 meses a la fecha proporcionada. La función de las expresiones que crea en el producto añade solo 88 meses.

Del mismo modo, para la expresión MonthsBetween(<date_1>, <date_2>), el valor devuelto por un proveedor SGBDR podría ser 77.4. La función de las expresiones que crea en el producto devuelve 77.

Comparación entre operaciones basadas en caché y operaciones basadas en SGBDR

Algunas operaciones (por ejemplo, la creación de una propiedad calculada) son operaciones basadas en caché y utilizan el proceso de construcción de expresiones para la evaluación. Otras operaciones (por ejemplo, un filtro en un banco de datos SGBDR) utilizan el sistema SGBDR subyacente.

Debido a las diferencias entre proveedores, el resultado puede variar. Por ejemplo, si se conecta a un banco de datos de MySQL, podrá crear dos propiedades calculadas: CP1 y CP2. CP1 se define mediante la expresión Soundex(<propiedad>) y CP2 mediante la expresión Soundex(<literal>). En la Tabla de datos, el valor de CP1 y CP2 puede ser idéntico. No obstante, si utiliza un filtro que contiene la expresión Soundex(<propiedad>) = Soundex(<texto>), los valores resultantes pueden ser distintos. En Conjunto de herramientas AutoCAD Map 3D, en la Tabla de datos el proceso de creación de expresiones evalúa las expresiones. El banco de datos MySQL (que usa otra definición de funciones) evalúa el filtro.