Finestra di dialogo Opzioni avanzate generazione istruzioni SQL
Aggiornamento: novembre 2007
Consente di controllare come vengono create le stored procedure o le istruzioni SQL per un adattatore. La finestra di dialogo viene visualizzata facendo clic sul pulsante Opzioni avanzate nella pagina Istruzioni SQL di una delle procedure guidate per i dati. Tutte le opzioni di questa finestra di dialogo riguardano le istruzioni o le procedure chiamate nell'ambito di una procedura di aggiornamento, ad esempio CustomersTableAdapter.Update(DataTable).
Elenco degli elementi dell'interfaccia utente
Genera istruzioni Insert, Update e Delete
Selezionando questa opzione vengono create istruzioni SQL o stored procedure per gli oggetti UpdateCommand, InsertCommand e DeleteCommand dell'adattatore. Le specifiche dell'istruzione o della procedura da generare vengono impostate nel riquadro Scegli tipo di query della procedura guidata. Se la casella di controllo non è selezionata, le restanti opzioni della finestra di dialogo sono disattivate in quanto non applicabili.Di norma questa casella deve essere deselezionata nelle seguenti circostanze:
L'adattatore verrà utilizzato soltanto per leggere dati da un'origine dati, non per riscriverli. Deselezionando questa casella si riduce la quantità di codice del form o componente.
Si ha intenzione di compilare manualmente i comandi al termine della procedura guidata.
Se la casella di controllo non è selezionata e non esistono istruzioni o stored procedure per gli oggetti UpdateCommand, InsertCommand o DeleteCommand, effettuando la chiamata del metodo Update dell'adattatore dati non succede nulla.
Usa concorrenza ottimistica
Se questa opzione è selezionata, viene generato un comando SQL con una clausola WHERE che confronta il valore di ogni colonna del record in fase di aggiornamento con il record corrispondente del database.Nota: L'opzione è disponibile solo se è selezionata la casella di controllo Genera istruzioni Insert, Update e Delete.
La sintassi di un'istruzione Update generata con questa opzione, ad esempio, è la seguente:
UPDATE Customers SET CustomerID = ?, CompanyName = ?, Phone = ? WHERE (CustomerID = ?) AND (CompanyName = ?) AND (Phone = ? OR ? IS NULL AND Phone IS NULL);
Se la casella di controllo non è selezionata, la sintassi sarà la seguente:
UPDATE Customers SET CustomerID = ?, CompanyName = ?, Phone = ? WHERE (CustomerID = ?)
Il controllo del valore di ogni colonna ha come diretta conseguenza la mancata riuscita del comando se una colonna qualsiasi è cambiata, come nel caso in cui un altro utente abbia modificato il record dopo che è stato letto nel dataset. Se l'opzione non è stata attivata e la clausola WHERE permette semplicemente di individuare il record, le modifiche apportate da altri utenti potrebbero venire annullate in seguito all'aggiornamento senza che venga visualizzato alcun messaggio.
Per ulteriori informazioni sul controllo della concorrenza durante l'aggiornamento da un dataset, vedere Introduzione alla concorrenza dei dati in ADO.NET.
Aggiorna la tabella dati
Se questa opzione è selezionata, viene generata un'istruzione Select per ogni comando Update e Insert.Nota: L'opzione è disponibile solo se è selezionata la casella di controllo Genera istruzioni Insert, Update e Delete.
L'istruzione Select viene aggiunta all'oggetto comando corrispondente nell'adattatore e viene eseguita non appena viene completata l'esecuzione del comando Update o Insert. Questa istruzione è configurata in modo da restituire soltanto un record, e precisamente la versione più recente del record appena aggiornato.
Nota: È possibile aggiungere più istruzioni alla proprietà CommandText dell'oggetto comando di un adattatore separandole una dall'altra mediante un punto e virgola (;).
Se si ottiene una nuova versione del record, verranno scritti nel dataset i valori aggiornati delle colonne del record, in particolare:
Colonne in cui viene immesso un valore predefinito dal database
Colonne con incremento automatico
Colonne timestamp
Colonne modificate dal risultato di un trigger di database.
Tenere presente che, poiché con questa opzione vengono eseguite due istruzioni per ogni aggiornamento, ovvero l'istruzione di aggiornamento e la successiva istruzione Select, può essere poco pratico utilizzarla quando deve essere aggiornata la maggior parte dei record di un dataset. Sarà invece più efficiente inserire di nuovo i dati nella la tabella in un'unica operazione dopo che tutti gli aggiornamenti sono stati effettuati.
Nota: L'aggiornamento della tabella di dati è disponibile soltanto per i database che supportano l'elaborazione in batch delle istruzioni SQL. In Microsoft Access, ad esempio, non è possibile aggiornare la tabella di dati nell'ambito dello stesso comando utilizzato per eseguire altre operazioni.
Vedere anche
Concetti
Cenni preliminari sulla visualizzazione dei dati
Altre risorse
Procedure dettagliate relative ai dati
Connessione ai dati in Visual Studio
Preparazione dell'applicazione al ricevimento di dati
Recupero di dati nell'applicazione
Visualizzazione di dati su form nelle applicazioni Windows