Domanda

Sto cercando di confermare o smentire se è possibile definire una colonna della tabella in MS Access 2003 come un insieme. Sembra che questo implementato in Office 2007 - è possibile definire una colonna di avere una 'lista di selezione multipla' nella query / lookup, ma questa caratteristica sembra essere unico per il nuovo formato di file Access 2007 per quanto posso determinare.

Formulato in un altro modo, non MS Access 2003 hanno l'equivalente alla istruzione SQL:

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

O c'è una soluzione intelligente per ottenere qualcosa di simile? Vorrei accettare una risposta che fornisce informazioni su eventuali costruttori di raccolta in Access 2003.

È stato utile?

Soluzione

Si riferisce a multivalore tipi di dati del database del motore di Access ? Se è così allora sì, questi sono nuovi per l'ACE (2007) versione del motore e non sono disponibili in Jet 4.0 essere la versione di Access2003 del motore.

FWIW Ho cercato il tuo SQL in Access2007 utilizzando la modalità di query ANSI-92 (OLE DB, tipo di motore = 5) e la parola chiave MULTISET non è stato riconosciuto.

Si noti potrebbe non essere necessario né vogliono tipi più valori. Una critica particolare è che il servizio di database di Access espressioni SQL DML non è stato modificato per tener conto dei tipi più valori. Inoltre, si veda questo articolo tipi di dati multivalore ritenuti dannosi :

  

sia Suraj [Poozhiyil, la MS Access   Program Manager] e io sono d'accordo   con tutto il cuore che gli sviluppatori non lo fanno   bisogno di usare i campi multivalore.   Le persone che capiscono i database   hanno già un buon modo di   attuazione molti a molti   relazioni e otterranno alcun beneficio   dai campi multivalore.

     

Quindi, la mia chiara e certa consulenza ai   gli sviluppatori è di non usare più valori   campi. Non hanno nulla da offrirci   tranne il dolore potenziale.

UPDATE:

  

MULTISET è un nuovo tipo di dato ufficialmente   A partire da SQL: 2003, quindi sono   indovinando parte della ragione per l'aggiunta di   in Access 2007 è quello di essere pienamente   compatibile con lo standard SQL

E 'quasi divertente. Il team di accesso hanno mostrato alcun interesse per l'aggiunta di sintassi SQL che è compatibile con qualsiasi standard SQL.

[Quando il team di SQL Server sono stati modificando Jet per la sua release 4.0 che volevano raggiungere la SQL-92 conformità, ma è stato impedito di farlo da parte del team di Windows i cui componenti erano affidamento su alcune caratteristiche rimanenti non conforme ... ma questo è un'altra storia. Il team di accesso hanno la loro gente privata della base di codice in modo essi hanno nessuna tale scusa ... a meno che il team di SharePoint ora ha influenza indebita? Sto divagando ...]

Considerate questa citazione dal documento sulla SQL2003 standard:

  

I valori di tipo MULTISET possono essere   creato sia enumerando il   singoli elementi o fornendo   gli elementi attraverso una query   espressione; per es.,

     

MULTISET[1, 2, 3, 4]

     

o

     

MULTISET(            SELECT grades              FROM courses           )

     

... Al contrario, un valore multinsieme può essere   utilizzato come riferimento nella tabella FROM   Clausola utilizzando l'operatore UNNEST.

Il team di accesso non ha aggiunto nessun nuove espressioni né alcun operatore alla sintassi SQL DML ACE. Quindi, no, questo non ha nulla a che fare con SQL Standard e tutto a che fare con SharePoint.

  

David W. Fenton: No, [il supporto per   tipi multivalore] è stata aggiunta nel   formato ACCDB (non l'ACE, come   @onedaywhen dice ...)

Considerate questa citazione da proprio blog del team di accesso :

  

La caratteristica principale abbiamo aggiunto alla nuova   L'accesso del motore è il supporto per “complesso   Dati”.

E 'sicuramente una caratteristica del motore!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top