Debug di stored procedure

Le stored procedure di Analysis Services in realtà sono librerie CLR o COM, in genere DLL, scritte in C# o qualsiasi altro linguaggio CLR o COM. Pertanto, il debug di una stored procedure è molto simile al debug di qualsiasi altra applicazione nell'ambiente di debug di Visual Studio. Per eseguire il debug di una stored procedure nell'ambiente di sviluppo di Visual Studio vengono utilizzate le funzioni di debug integrate, che consentono di interrompere l'esecuzione in corrispondenza delle posizioni delle procedure, controllare la memoria e registrare valori, modificare variabili, osservare i messaggi visualizzati e analizzare in dettaglio il funzionamento del codice.

Per eseguire il debug di una stored procedure

  1. Aprire il progetto utilizzato per creare la DLL in Visual Studio.

  2. Impostare punti di interruzione nel metodo o nella funzione corrispondente alla procedura di cui si desidera eseguire il debug.

  3. Utilizzare Visual Studio per creare una build di debug di una DLL di stored procedure.

  4. Distribuire la DLL nel server. Per ulteriori informazioni sulla distribuzione della DLL nel server, vedere Creazione di stored procedure.

  5. La stored procedure di cui si desidera eseguire il debug deve essere chiamata da un'applicazione. Se non esiste un'applicazione utilizzabile a tale scopo, è possibile utilizzare l'Editor di query MDX in SQL Server Management Studio per creare una query MDX che chiami la stored procedure desiderata.

  6. In Visual Studio connettersi al processo di Analysis Services (Msmdsrv.exe).

    1. Scegliere Connetti aprocesso dal menu Debug.

    2. Nella finestra di dialogo Connetti aprocesso selezionare Mostra processi di tutti gli utenti.

    3. Nell'elenco Processi disponibili fare clic su Msmdsrv.exe nella colonna Processo. Se le istanze di Analysis Services in esecuzione nel server sono più di una, è necessario identificare il processo specificando l'ID dell'istanza che si desidera utilizzare.

    4. Nella casella di testo Connetti a verificare che sia selezionato il tipo di programma appropriato. Per una DLL CLR, fare clic su Seleziona, quindi su Esegui il debug di questi tipi di codice, poi su Gestito e infine su OK. Per una DLL COM, fare clic su Seleziona, quindi su Esegui il debug di questi tipi di codice, poi su Nativo e infine su OK.

    5. Fare clic su Connetti.

  7. In Analysis Services richiamare il programma o lo script MDX che chiama la stored procedure. Il debugger interrompe l'esecuzione quando raggiunge una riga contenente un punto di interruzione. È possibile valutare variabili nella finestra Espressione di controllo, visualizzare variabili locali ed eseguire il codice un'istruzione alla volta.

In caso di problemi durante il debug di una libreria, verificare che il file del database di programma (PDB) corrispondente sia stato copiato nel percorso di distribuzione nel server. Se questo file non è stato copiato durante la registrazione o la distribuzione, è necessario copiarlo manualmente nello stesso percorso della DLL. Per il codice nativo (DLL COM), il file PDB si trova nella sottodirectory \debug. Per il codice gestito (DLL CLR), si trova nella sottodirectory \WINDEBUG.