Condividi tramite


Readme_MARS

Data aggiornamento: 17 luglio 2006

Questo esempio illustra come utilizzare la funzionalità MARS (Multiple Active Result Set). MARS consente di eseguire più comandi su una stessa connessione, anche se i risultati dell'esecuzione di uno o più comandi non sono ancora stati restituiti al client.

Gli esempi vengono forniti esclusivamente a scopo didattico. Non sono destinati all'utilizzo in un ambiente di produzione e non sono stati testati in un ambiente di produzione. Microsoft non rende disponibile il supporto tecnico per questi esempi. Le applicazioni e gli assembly di esempio non devono essere connessi o utilizzati con il database di SQL Server o il server di report in un ambiente di produzione senza l'autorizzazione dell'amministratore di sistema.

Percorso predefinito: drive:\Programmi\Microsoft SQL Server\90\Samples\Engine\

Data Access\ADO\MARS.

Scenario

AdventureWorks Cycles desidera aumentare il costo standard e il prezzo di listino delle biciclette più vendute perché il prezzo di tali biciclette è aumentato in seguito all'aumento del costo della vernice. L'aumento di prezzo varia in base al colore della vernice.

Linguaggi

Transact-SQL, Visual C# e Visual Basic.

Funzionalità

L'esempio MARS utilizza le funzionalità seguenti di SQL Server 2005 e Microsoft .NET Framework versione 2.0:

Area di applicazione Funzionalità

Generale

MARS, ADO.NET 2.0, stored procedure Transact-SQL

Prerequisiti

Prima di eseguire questo esempio, verificare che siano installati i prodotti software seguenti:

  • SQL Server 2005 o SQL Server 2005 Express Edition (SQL Server Express). SQL Server Express è disponibile per il download nel sito Web Esempi e download di SQL Server.
  • Il database AdventureWorks, incluso in SQL Server 2005 e disponibile nel sito Web per gli sviluppatori di SQL Server.
  • Gli esempi di Motore di database di SQL Server 2005, inclusi in SQL Server 2005. È possibile scaricare la versione più recente degli esempi dal sito Web per gli sviluppatori di SQL Server.
  • .NET Framework SDK 2.0 o Microsoft Visual Studio 2005. .NET Framework SDK è disponibile gratuitamente. Vedere Installazione di .NET Framework SDK.

Generazione dell'esempio

Se non è stato ancora creato un file di chiave con nome sicuro, generare il file di chiave seguendo le istruzioni seguenti.

Per generare un file di chiave con nome sicuro

  1. Aprire il prompt dei comandi di Microsoft Visual Studio 2005. Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft .NET Framework SDK 2.0, quindi SDK Command Prompt.

    -- oppure --

    Aprire il prompt dei comandi di Microsoft .NET Framework. Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft .NET Framework SDK 2.0, quindi SDK Command Prompt.

  2. Utilizzare il comando CD (change directory) per passare dalla directory corrente della finestra del prompt dei comandi alla cartella in cui sono stati installati gli esempi.

    [!NOTA] Per determinare la cartella in cui si trovano gli esempi, fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft SQL Server 2005, Documentazione ed esercitazioni, quindi Samples. Se è stato utilizzato il percorso di installazione predefinito, gli esempi si troveranno in <unità_sistema>:\Programmi\Microsoft SQL Server\100\Samples.

  3. Al prompt dei comandi digitare il comando seguente per generare il file di chiave:

    sn -k SampleKey.snk

    ms160937.note(it-it,SQL.90).gifImportante:
    Per ulteriori informazioni sulla coppia di chiavi con nome sicuro, vedere l'argomento relativo ai nomi sicuri e alla protezione in .NET Framework nel centro per sviluppatori di .NET su MSDN.

Per generare questo esempio, procedere come segue:

Generazione dell'esempio

  1. Compilare l'esempio utilizzando Visual Studio e il file della soluzione incluso nella directory CS, oppure utilizzando la riga di comando MSBuild seguente nella finestra del prompt dei comandi .NET Framework o Microsoft Visual Studio 2005:

    msbuild /nologo /verbosity:quiet /property:Configuration=Debug CS\ MARS.sln

Esecuzione dell'esempio

Per eseguire questo esempio, procedere come segue:

Esecuzione dell'esempio

  1. Aprire lo script scripts\install.sql in SQL Server Management Studio. Eseguire il contenuto del file oppure eseguire il comando seguente nella finestra del prompt dei comandi:

    sqlcmd -E -I -i Scripts\install.sql

  2. Nella finestra del prompt dei comandi individuare la directory CS\MARS\bin\debug ed eseguire il comando seguente:

    mars

Rimozione dell'esempio

Per ripristinare i dati modificati dall'esempio e rimuovere l'esempio, procedere come segue:

Rimozione dell'esempio

  1. Aprire lo script Scripts\cleanup.sql in Management Studio. Eseguire il contenuto del file oppure eseguire il comando seguente nella finestra del prompt dei comandi:

    sqlcmd -E -I -i Scripts\cleanup.sql

Commenti

In alcuni casi potrebbe risultare più efficace utilizzare istruzioni JOIN in una query o in un aggiornamento sul lato server invece della funzionalità MARS. Se, ad esempio, è necessario conoscere l'ID dell'ordine di vendita, l'ID del cliente, il numero di prodotto, la quantità dell'ordine e il totale delle voci per ogni record dei dettagli degli ordini di vendita del mese di marzo 2004, sebbene sia possibile scrivere una query tramite la funzionalità MARS, risulta più efficace scrivere la query utilizzando un'istruzione JOIN, come illustrato di seguito.

SELECT SOH.SalesOrderID, SOH.CustomerID, SOD.ProductID, 
  SOD.OrderQty, SOD.LineTotal
FROM Sales.SalesOrderHeader as SOH
JOIN Sales.SalesOrderDetail as SOD 
  ON SOH.SalesOrderID = SOD.SalesOrderID
WHERE SOH.OrderDate >= CONVERT(datetime, '20040301') 
  AND SOH.OrderDate < CONVERT(datetime, '20040401')
ORDER BY SOH.SalesOrderID;

Cronologia modifiche

Versione Cronologia

5 dicembre 2005

Contenuto modificato:
  • Modifica delle istruzioni per la generazione di un file di chiave, inclusi il nome e il percorso del file di chiave.