OsvaldoLaviosa ha scritto:
...
Per me parlare di query che si aggiornano è una impresa vana. Non comprendo alcune cose che vi siete detti, ma in linea generale una query serve per TIRARE FUORI DATI, VEDERLI e "COMMENTARLI", questo vale soprattutto per le query di selezione. Io so che su una query basata su una sola tabella è possibile modificare dati. Se nella query concorrono 2 tabelle si potrà notare che è possibile modificare alcuni campi, altri no. Via via, quante più tabelle concorrono alla formazione di una query, tanto più sarà impossibile modificare dati. Questo discorso dovrebbe far capire che le query servono solo per essere lette (READONLY). Se poi si parla di query di comando, il discorso prende tutta un'altra direzione, ma la filosofia appena descritta resta...non so se ho centrato il problema.
Non so bene dove hai letto questi concetti, ma forse servirebbe qualche chiarimento.
Le query si dividono in 2:
SELECT
ACTION
Le 1° sono di selezione dati, possono comprendere più tabelle, ed è assolutamente falso che in modo RANDOM non rendano Editabili TUTTI i dati, serve dare un dettaglio ed un taglio tecnico alle affermazioni.
Queste sono le principali cause che rendono READ-ONLY una querry:
Se le Tabelle sono in JOIN su Campi non Indicizzati e Chiavi(PK e FK), diventano ReadOnly
Se si usano funzioni di Aggregazione GROUP BY, diventano ReadOnly
Se usi funzioni di aggregazione First(), Sum(), Max(), Count(), diventano ReadOnly
Se usi UNION Query, diventano ReadOnly
Se usi DISTINCT, diventano ReadOnly
Se usi SUBQUERY, diventano ReadOnly
Se usi Query Pass-Trought, diventano ReadOnly
Se usi JOIN in direzioni differenti su Tabelle Multiple(in sostanza nelle Molti-Molti), diventano ReadOnly(ma se sono tabelle con JOIN unidirezionali puoi averne anche N in fila)
Le 2° sono di UPDATE/DELETE ecc... ma sono altra cosa.
Quindi, personalmente preferisco documentare tecnicamente... senza generalizzare, perchè rischia di creare un pò di confusione in chi legge, ed è falso che le Query si usino concettualmente solo per la visualizzazione, si usano per quello che servono, anche per l'EDITING dei dati sapendo quali sono i limiti.