DO: Caricamento collection errato
copia linkDescrizione del difetto
In alcuni casi molto particolari il sistema caricava più documenti di quelli previsti all'interno di collection di documenti. L'esempio seguente mostra in quali casi poteva manifestarsi il malfunzionamento:

Manifestazione del problema: a sinistra la struttura di un database dove si manifestava il problema, a destra la struttura di un database dove il problema non si manifestava.
L'immagine mostra un caso in cui si poteva manifestare il problema. Sulla sinistra sono mostrate 3 tabelle: Articoli, Paragrafi e SottoParagrafi. La tabella Paragrafi contiene una foreign key verso la tabella Articoli (campo IDArticolo). La tabella SottoParagrafi contiene due foreign key: una verso la tabella Articoli (campi inclusi: IDArticolo) e l'altra verso la tabella Paragrafi (campi inclusi: IDArticolo e IDParagrafo). La foreign key verso la tabella Articoli è stata creata per prima pertanto il campo IDArticolo contenuto nella tabella SottoParagrafi punta all'ID della tabella Articoli come mostrato in figura.
Sulla destra la struttura dei campi è la stessa ma la tabella SottoParagrafi non ha la foreign key verso la tabella Articoli in quanto non necessaria (il campo IDArticolo, infatti, è già presente nella foreign key verso la tabella Paragrafi).
In questo caso particolare, se si creava una classe Paragrafi ed una classe SottoPargrafi e si creava all'interno della classe Paragrafi una collection di SottoParagrafi e poi si effettuava il caricamento di un particolare Paragrafo, per esempio valorizzando ad 1 sia il campo ID che il campo IDArticolo, poteva capitare che la collection dei sotto paragrafi contenesse più sotto paragrafi di quelli previsti. A causa del malfunzionamento, infatti, il sistema utilizzava solo il collegamento A mostrato in figura e non il collegamento B dato che il campo IDArticolo della tabella SottoParagrafi non era collegato a nessun campo della tabella Paragrafi.
Il malfunzionamento, oltre a manifestarsi a run-time come descritto sopra, poteva manifestarsi anche a design time se veniva creata una query di caricamento della collection tramite il comando Aggiungi Query Lista Valori aperto sulla collection. In questo caso Instant Developer creava la query di caricamento ma, a causa del malfunzionamento, inseriva una sola clausola Where:

La clausola Where indicata in figura non veniva inserita da Instant Developer nelle versioni precedenti.
Effetti del malfunzionamento
- La collection del documento veniva caricata ma questa conteneva più documenti di quelli previsti.
Soluzioni
Questo difetto è stato risolto nella versione 9.5. Non sono disponibili semplici workaround per le versioni precedenti. Qualora il caso si presenti solo in alcuni casi rari è possibile specificare una query di caricamento della collection ed aggiungere manualmente le clausole Where mancanti.
Funzionalità interessate
L'utilizzo del framework Document Orientation.
Note
- Malfunzionamento relativo alla segnalazione 000838-2010.
Ultima modifica: 08/10/2010 / Validità: da 9.5.4160