Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Le informazioni contenute in questo argomento sono valide per:
Edition |
Visual Basic |
C# |
C++ |
Web Developer |
|---|---|---|---|---|
Express |
![]() |
![]() |
![]() |
![]() |
Standard |
![]() |
![]() |
![]() |
![]() |
Pro e Team |
![]() |
![]() |
![]() |
![]() |
Legenda tabella:
![]() |
Applicabile |
![]() |
Non applicabile |
![]() |
Comando o comandi nascosti per impostazione predefinita. |
Attenzione: |
|---|
Le stored procedure estese sono obsolete. Sebbene continuino a essere supportate per garantire la compatibilità con le versioni precedenti di ASP.NET, tale supporto verrà rimosso nelle versioni future. |
Le stored procedure estese sono state introdotte per consentire l'esecuzione di azioni non consentite in T-SQL, come l'accesso al file system, la lettura del Registro di sistema e così via. Ora che è possibile eseguire queste operazioni scrivendo procedure CLR SQL, non è più necessario scrivere stored procedure estese. È consigliabile non scrivere nuove stored procedure estese e considerare la sostituzione di quelle esistenti con stored procedure CLR SQL equivalenti, ma più sicure.
Le stored procedure estese sono DLL scritte in C++ o in qualsiasi altro linguaggio diverso da SQL. Pertanto, il debug di una stored procedure estesa è molto simile al debug di qualsiasi DLL nello stesso linguaggio.
Attenzione: |
|---|
Le stored procedure estese sono scritte in genere in C++ nativo e non dispongono delle protezioni garantite dal codice gestito. È opportuno sottoporle a test con cautela poiché gli errori potrebbero causare un arresto anomalo di SQL Server. Per evitare la possibile perdita di dati e altri problemi, non eseguire il debug di una stored procedure estesa in un server di produzione. Per ulteriori informazioni, vedere la documentazione in linea di ASP.NET. |
Le finestre di dialogo e i comandi di menu visualizzati potrebbero non corrispondere a quelli descritti nella Guida in linea in quanto dipendono dall'edizione o dalle impostazioni attive. Per modificare le impostazioni, scegliere Importa/Esporta impostazioni dal menu Strumenti. Per ulteriori informazioni, vedere Impostazioni di Visual Studio.
Per eseguire il debug di una stored procedure estesa
Iniziare con una build di debug di una DLL di stored procedure estesa. È inoltre necessario disporre di un'applicazione che chiami la stored procedure estesa da sottoporre a debug. Se non si dispone di tale applicazione, eseguire una delle operazioni seguenti:
Creare un progetto di database Visual Studio con una connessione dati per il database contenente la stored procedure estesa e il codice chiamarla.
Creare un file di script SQL per la chiamata alla stored procedure estesa.
-oppure-
Utilizzare un'applicazione quale ISQL/W (fornita con SQL Server) o ODBC Test (fornita con ODBC SDK).
Se SQL Server è correntemente eseguito come servizio, arrestarlo aprendo il pannello di controllo Servizi, selezionando SQL Server e scegliendo Interrompi.
Copiare la versione di debug della DLL nella directory in cui risiede sqlservr.exe o in una directory del percorso di ricerca.
- oppure -
Impostare un evento di post-generazione per copiare la DLL nel progetto C++ come descritto di seguito:
Aprire la finestra di dialogo Pagine delle proprietà di <Progetto>.
Nella finestra di dialogo Pagine delle proprietà di <Progetto> aprire la cartella Proprietà di configurazione.
In Proprietà di configurazione aprire la cartella Eventi di generazione.
Selezionare Evento di post-generazione.
Nel controllo griglia accanto a Riga di comando digitare un comando di copia, ad esempio:
Copy c:\MyProjects\MyXProc\debug\MyXProc.dll C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn
Registrare la stored procedure estesa.
Specificare SQL Server come eseguibile chiamante e cartella di lavoro per la DLL della stored procedure estesa. Modificare le impostazioni nella finestra di dialogo Proprietà progetto <Progetto>, accessibile dalla categoria Debug di Proprietà di configurazione nel modo seguente:
Se SQL Server è stato installato nel percorso predefinito, digitare C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\SQLSERVR.EXE nella casella Comando.
Impostare la voce Cartella di lavoro su C:\Programmi\Microsoft SQL Server\MSSQL.1\MSSQL\Binn.
Impostare la voce Argomenti del comando su -c. L'opzione -c indica che SQL Server verrà avviato dalla riga di comando e non come servizio. In questo modo, la procedura di avvio di SQL Server risulterà più rapida. SQL Server non verrà avviato come servizio ma come applicazione console controllata dall'ambiente di debug di Visual Studio. I punti di interruzione verranno quindi intercettati e gestiti correttamente.
Impostare i punti di interruzione nel codice sorgente della stored procedure estesa.
Utilizzare un comando di esecuzione per iniziare la sessione di debug. Per ulteriori informazioni, vedere Controllo dell'esecuzione.
All'avvio di SQL Server verrà visualizzata una finestra di console. Quando lo scorrimento del testo si interrompe, viene visualizzato il seguente messaggio:
Avviata la procedura di avvio 'sp_sqlregister'
SQL Server verrà avviato e inizierà l'elaborazione delle richieste.
Eseguire la stored procedure estesa.
Il debugger si arresterà non appena verrà raggiunta una riga contenente un punto di interruzione.
Per ulteriori suggerimenti sulla scrittura delle stored procedure estese, consultare la sezione relativa a SQL Server della Microsoft Knowledge Base o la sezione Programming Extended Stored Procedures della documentazione relativa a SQL Server in MSDN Library (informazioni in lingua inglese).
.gif)
.gif)
.gif)
Attenzione: