x64 sirve que para office microsoft español engine datos controlador conectividad componentes ms-access database-design set ms-access-2003

ms access - sirve - ¿Microsoft Access 2003 contiene conjuntos o multisedes?



microsoft ace oledb 12.0 download 64 bit (1)

Estoy intentando confirmar o negar si puede definir una columna de tabla en MS Access 2003 como un conjunto. Parece que esto está implementado en Office 2007: puede definir una columna para tener una ''lista de selección múltiple'' en la consulta / búsqueda, pero esta función parece ser única para el nuevo formato de archivo de acceso 2007 en la medida que puedo determinar.

Dicho de otra manera, MS Access 2003 tiene el equivalente a la declaración SQL:

CREATE TABLE mytable (foo VARCHAR(10), bar VARCHAR(5) MULTISET);

¿O hay una solución inteligente para lograr algo similar? Aceptaría una respuesta que brinde información sobre cualquier constructor de colecciones en Access 2003.


¿Se refiere a los tipos de datos multivalor del Motor de base de datos de Access? Si es así, entonces sí, estos son nuevos para la versión ACE (2007) del motor y no están disponibles en Jet 4.0 siendo la versión del motor de Access2003.

FWIW Intenté su SQL en Access2007 usando el modo de consulta ANSI-92 (OLE DB, tipo de motor = 5) y no se reconoció la palabra clave MULTISET.

Tenga en cuenta que es posible que no necesite ni desee tipos con varios valores. Una crítica particular es que el servicio de expresiones SQL DML de Access Database no se ha modificado para tener en cuenta los tipos multivalor. Además, consulte este artículo Tipos de datos multivalor considerados dañinos :

tanto Suraj [Poozhiyil, el Administrador del Programa MS Access] y estoy totalmente de acuerdo en que los desarrolladores no necesitan usar campos con múltiples valores. Las personas que entienden las bases de datos ya tienen una buena forma de implementar muchas relaciones y no obtendrán ningún beneficio de los campos con múltiples valores.

Por lo tanto, mi consejo claro y cierto para los desarrolladores es no usar campos con múltiples valores. No tienen nada que ofrecernos excepto dolor potencial.

ACTUALIZAR:

MULTISET es un nuevo tipo de datos que oficialmente comienza con SQL: 2003, así que supongo que parte de la razón para agregarlo en Access 2007 es ser totalmente compatible con el estándar SQL.

Eso es casi divertido. El Equipo de Acceso no ha mostrado interés en agregar sintaxis SQL que cumpla con cualquier Estándar SQL.

[Cuando el equipo de SQL Server modificaba Jet para su versión 4.0, querían lograr el cumplimiento de SQL-92 pero el equipo de Windows les impidió hacerlo, cuyos componentes dependían de algunas características que no cumplían ... pero esa es otra historia. El Equipo de Acceso tiene su propia gente privada de la base de código, por lo que no tienen esa excusa ... a menos que el Equipo de SharePoint ahora tenga una influencia indebida. Estoy divagando ...]

Considere esta cita del documento sobre el estándar SQL2003:

Los valores de un tipo MULTISET se pueden crear enumerando los elementos individuales o suministrando los elementos a través de una expresión de consulta; p.ej,

MULTISET[1, 2, 3, 4]

o

MULTISET( SELECT grades FROM courses )

... Por el contrario, un valor multiset puede utilizarse como una referencia de tabla en la cláusula FROM utilizando el operador UNNEST .

El Equipo de acceso no ha agregado expresiones nuevas ni operadores a la sintaxis DML SQL de ACE. Entonces, no, esto no tiene nada que ver con los Estándares SQL y todo lo relacionado con SharePoint.

David W. Fenton: No, se agregó [soporte para tipos multivalor] en el formato ACCDB (no en el ACE, como @onedaywhen dice ...)

Considere esta cita del propio blog del Equipo de Acceso :

La función principal que agregamos al nuevo motor de acceso es la compatibilidad con "datos complejos".

¡Definitivamente es una característica del motor!