2017-05-03 5 views
0

Ich habe ein Problem mit 2 Berichten aus dem gleichen Grund, ich verwende SSRS/SQL 2014. Meine gespeicherte Prozedur dauert 2 Daten und gibt einen sehr einfachen Datensatz, nur 2 Spalten einen Namen und eine Zahl. Wenn ich den SP in SSMS ausführe, funktioniert es einwandfrei, aber wenn ich es in einen Bericht einfüge, läuft der Bericht einfach weiter, scheitert nicht, gibt aber keine Daten zurück. Ursprünglich hatte ich eine Matrix im Bericht, aber um direkt zu den Grundlagen zurückzukehren, wollte ich nur versuchen, den obersten einen Namen aus dem Datensatz zurückzugeben, aber der Bericht läuft gerade. Ich habe überprüft, um sicherzustellen, dass das Konto, das verwendet wird, um den Bericht auszuführen, über Berechtigungen verfügt, die es für andere Berichte verwendet, aber für diesen Vorgang passiert nichts und ich habe keine Ideen mehr, wo ich nachsehen kann. Ich habe den Bericht ein paar Mal neu aufgebaut und ich kann den SP gut sehen und die Feldnamen zurücknehmen, aber keinen Erfolg mehr. Ich habe den Bericht in Visual Studio und SSRS Reporty Builder erstellt. Ich schätze, das ist ein wenig vage, aber ich suche nur nach weiteren Ideen, was ich versuchen soll. DankeSSRS-Bericht wird nicht mit gespeicherter Prozedur ausgeführt

+0

Können Sie die gespeicherte Prozedur veröffentlichen? –

+1

Versuchen Sie zuerst, die Abfrage manuell vom Designer auszuführen. Klicken Sie in Visual Studio mit der rechten Maustaste auf den Namen des Datasets, wählen Sie "query" und klicken Sie auf die Schaltfläche '!', Fügen Sie die Parameterwerte hinzu, wenn Sie dazu aufgefordert werden, und sehen Sie, was passiert. Wenn es OK funktioniert, werden die Parameter wahrscheinlich falsch übergeben/analysiert. Wenn dies nicht funktioniert, führen Sie eine Ablaufverfolgung in der SQL Server-Box (SQL Profiler) aus und sehen Sie, welche Abfrage auf dem Server selbst ausgeführt wird. Veröffentlichen Sie die Ergebnisse der Tests hier. –

Antwort

0

Es kann sein, dass Sie eine offene Transaktion in Ihrer gespeicherten Prozedur haben. Dies verhindert nicht, dass die gespeicherte Prozedur in SSMS ausgeführt wird, aber es würde verhindern, dass der SSRS-Bericht gerendert wird. Ihre gespeicherte Prozedur sollte mit einem Semikolon (;) enden, oder mit END/COMMIT/COMMIT TRAN, abhängig vom Start Ihres Verfahrens.

0

Entschuldigung für die Verzögerung bei der Antwort, aber gerade erst ins Büro gekommen. Danke für all die Vorschläge und ich habe sie durchgegangen, bevor ich auf die Antwort gestolpert bin.

Ich habe die Variablen manuell durch den Bericht übergeben und bekam nichts und beim Überprüfen des Profilers konnte ich sehen, dass sie korrekt übergeben wurden.

Ich nahm die Ausgabe und fügte sie in SSMS und bekam nichts, aber wenn ich einen kleineren Datumsbereich übergeben, dass ich ursprünglich Informationen erhalten, obwohl es Daten für beide Datumsbereiche gibt.

Was ich dachte, würde ich machen, wie ich mich an ein ähnliches Problem vor vielen Jahren erinnern, ich markiert tatsächlich die SP neu kompiliert und führte es erneut in SSMS und führte dann den ursprünglichen Bericht in Visual Studio und auf dem Berichtsserver und jetzt funktioniert alles richtig. Meine einzige Annahme ist, dass der Ausführungsplan irgendwie korrumpiert wurde. Ich hoffe, dass dies jemand anderem hilft.

+0

Vielen Dank, dass Sie mit Ihrer Lösung zurückgekommen sind. Dieses Problem wird "Parameter Sniffing" genannt –

Verwandte Themen