Eseguire programma da procedura

venerdì 03 febbraio 2012 - 16.17
Tag Elenco Tags  C#  |  VB.NET  |  .NET 3.0  |  .NET 3.5  |  .NET 4.0  |  Windows Server 2008 R2  |  Windows Server 2008  |  Windows 7  |  Visual Studio 2010  |  SQL Server 2008 R2  |  SQL Server 2008  |  SQL Server 2005  |  Crystal Reports 8.5  |  Crystal Reports 10.0  |  Crystal Reports XI  |  Crystal Reports 2008  |  SQL Reporting Services

_jack_ Profilo | Junior Member

Ciao a tutti,
ho cercato in rete ma non trovo nulla che soddisfi il mio risultato.
Spiego:
da una procedura/trigger di MS SQL (2008 R2) dovrei far eseguire un programma exe.

Il programma in questione dovrebbe stampare un report secondo i parametri calcolati dalla procedura.
(Se c'è una soluzione alternativa per stampare report in maniera asincrona e da SQL si risolve tutto ma non ho idea di come si faccia :-) )

Quello che ho trovato è usare la procedura xp_cmdshell.
Ho provato ma il mio programma .exe non parte.

Con operazioni tipo 'mkdir C:\temp\test' funziona, ma con .exe (notepad,calc,ecc..) non va.
Ho provato anche a lanciare un file .bat e, all'interno del file, chiamare il mio eseguibile ma niente.

Any ideas?

Grazie mille
JJ

lbenaglia Profilo | Guru

>da una procedura/trigger di MS SQL (2008 R2) dovrei far eseguire
>un programma exe.

Ti consiglio caldamente di cambiare strada. Un RDBMS non è progettato per eseguire processi estrerni, quindi andrai incontro a tanti di quei problemi (prestazioni, concorrenza, sicurezza) che nemmeno immagini.

>Il programma in questione dovrebbe stampare un report secondo
>i parametri calcolati dalla procedura.
>(Se c'è una soluzione alternativa per stampare report in maniera
>asincrona e da SQL si risolve tutto ma non ho idea di come si
>faccia :-) )
SQL Server Reporting Services:
http://msdn.microsoft.com/it-it/library/ms159106.aspx

>Grazie mille
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

_jack_ Profilo | Junior Member

Ciao e grazie della risposta.
In effetti già mi ero indirizzato sgli SSRS.
Ma allora la domanda è...come faccio ad aprirli in maniera asincrona, da un evento SQL?

Grazie ancora.
J

alx_81 Profilo | Guru

>Ciao e grazie della risposta.
Ciao

>In effetti già mi ero indirizzato sgli SSRS.
>Ma allora la domanda è...come faccio ad aprirli in maniera asincrona, da un evento SQL?
Prova a cambiare punto di vista, non far fare a sql server da scheduler.
Una volta che disegni un report, lo puoi tranquillamente schedulare dal motore di reporting services.
E' proprio necessario che sia un evento sql a creare un report?
Non puoi ad esempio scrivere un record di "semaforo" in una tua tabella apposita (creata da te) e poi far fare ad una stored procedure (chiamata dal report) il controllo se hai il via libera?
In poche parole, con lo scheduler del RS crei una sorta di polling, la chiamata, come prima cosa, controlla se è stato scritto un record di "esegui report".
se non esiste il record, esce e non fa nulla
se esiste il record, crea il report (popola un risultato, popola direttamente il report) e poi lo spedisce via email.
l'ho buttata lì, bisognerebbe conoscere bene anche il tuo ambiente ed il requisito funzionale.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5