Compartir a través de


Limitaciones de RDA

El acceso a datos remotos (RDA) de Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5) tiene limitaciones en las áreas siguientes:

  • Distinción de mayúsculas y minúsculas. A partir de la versión SQL Server Compact 3.5 Service Pack 1, SQL Server Compact admite la configuración de intercalaciones con distinción de mayúsculas y minúsculas en el nivel de base de datos. Los nombres de objeto, como los nombres de tabla, las palabras clave del lenguaje, las funciones y las vistas, no se tratan como si distinguieran mayúsculas y minúsculas en una base de datos de SQL Server Compact, aun cuando la intercalación distinga mayúsculas y minúsculas.
    En una base de datos de SQL Server Compact, los objetos se tratan de manera diferente a como se tratan en una base de datos de SQL Server. Por ejemplo, dos tablas, MITABLA y mitabla, se tratan como objetos diferentes en una base de datos de SQL Server que distingue mayúsculas y minúsculas. Los mismos nombres de tabla provocan un conflicto de nomenclatura en una base de datos de SQL Server Compact. Por el contrario, dos valores, MIVALOR y mivalor, ya no producen una infracción de clave principal en SQL Server Compact porque se tratan como valores diferentes. Tampoco ocasionan una infracción en una base de datos de SQL Server con distinción de mayúsculas y minúsculas.
  • ROWGUID. Cuando se utiliza RDA para extraer datos de una tabla de SQL Server que también participa en la replicación en el servidor, se debe excluir la columna del sistema con el atributo ROWGUIDCOL. De forma predeterminada, el nombre de esta columna es RowGuid.
    Por ejemplo, para el parámetro SQLSelectString en el método Pull, use SELECT CompanyName, ContactName FROM Customers en lugar de SELECT * FROM Customers.
  • Desencadenadores. SQL Server Compact 3.5 no admite desencadenadores. No obstante, los desencadenadores pueden residir en la tabla de SQL Server de la que el acceso a datos remotos (RDA) extrae los datos. Para las tablas con seguimiento, los desencadenadores de SQL Server se pueden ejecutar cuando los cambios se vuelven a insertar en SQL Server. Es posible que tenga que especificar SET NOCOUNT ON en la lógica del desencadenador. Esto indica que no se debe devolver el número de filas afectadas, porque si la respuesta es que no hay ninguna fila afectada, se produce un error para el método Push de RDA.
  • Tablas y columnas. Para las tablas con seguimiento, el número de columnas disponibles es 1.017 (1.024 menos siete columnas del sistema). Estas siete columnas del sistema están protegidas y se utilizan para las tablas de acceso a datos remotos (RDA) con seguimiento.
  • Columnas calculadas. El método Pull presenta errores si el conjunto de registros contiene columnas calculadas.
  • Columnas IDENTITY. Si utiliza columnas IDENTITY para generar unicidad, RDA no administra dinámicamente las columnas IDENTITY. Los valores iniciales predeterminados de una columna IDENTITY en el dispositivo son siempre seed=1, increment=1. SQL Server Compact 3.5 permite modificar los valores SEED e INCREMENT de identidad en la tabla de la base de datos local usando la instrucción ALTER TABLE. De este modo se puede administrar manualmente el intervalo de identidad para cada dispositivo. Tendrá que determinar el máximo valor IDENTITY y ajustar el valor SEED antes de intentar insertar en la tabla. Por ejemplo, si se determina que el máximo valor IDENTITY es 99, use ALTER TABLE Orders ALTER COLUMN OrderId IDENTITY (100,1) para restablecer el siguiente valor IDENTITY a 100.

Limitaciones de esquema

SQL Server Compact 3.5 puede realizar un seguimiento de los cambios en la tabla resultante de SQL Server Compact 3.5. Especificando la opción de seguimiento apropiada, SQL Server Compact 3.5 realiza un seguimiento de todas las inserciones, actualizaciones y eliminaciones realizadas en la tabla local de SQL Server Compact 3.5. La aplicación puede entonces llamar al método Push para propagar estos cambios de vuelta a la tabla de SQL Server original.

Los métodos Pull y Push con seguimiento de RDA utilizan el control de simultaneidad optimista. SQL Server no mantiene un bloqueo sobre los registros extraídos. Cuando la aplicación llama a Push, los cambios realizados en la base de datos local de SQL Server Compact 3.5 se aplican sin condiciones a la base de datos de SQL Server. Esto podría provocar la pérdida de los cambios efectuados por otros usuarios en la base de datos de SQL Server.

Use los métodos Pull y Push con seguimiento cuando los registros que esté actualizando tengan particiones lógicas y los conflictos no sean muy probables. Por ejemplo, puede utilizar los métodos Pull y Push con seguimiento en una aplicación de asistencia directa que realice un seguimiento de cada técnico con una lista única de llamadas de asistencia.

Puede realizar los siguientes cambios de esquema en una tabla de SQL Server Compact 3.5 creada con un método Pull con seguimiento:

  • Cambiar la inicialización o el incremento de la columna de identidad.
  • Agregar o eliminar restricciones DEFAULT.
  • Agregar o eliminar claves externas.
  • Agregar o eliminar índices.
  • Eliminar la tabla.

No se puede realizar ninguno de los siguientes cambios de esquema en una tabla de SQL Server mientras se esté procesando un método Pull con seguimiento:

  • Agregar, eliminar o cambiar el nombre de columnas.
  • Cambiar el nombre de la tabla.
  • Eliminar una clave principal.
  • Cambiar una definición de tipo de datos.

Para realizar dichos cambios de esquema en una tabla de SQL Server, debe eliminar la tabla de SQL Server Compact 3.5 y volver a extraer la tabla de SQL Server cambiada.