2010-08-09 9 views
7

क्या उन्हें कैप्चर करने के लिए प्रोफ़ाइल निशान चलाने के अलावा एसएसआरएस द्वारा उत्पन्न SQL क्वेरीज़ को देखने का कोई आसान तरीका है?एसएसआरएस रिपोर्ट द्वारा जेनरेट की गई SQL क्वेरी (ies) देखने का सरल तरीका?

क्या यह देखने के लिए बिड्स संपादक के भीतर से कोई रास्ता है?

उत्तर

4

संक्षेप में, नहीं। कोई अच्छा कामकाज नहीं है। हालांकि, विकास के लिए मैंने आम तौर पर एसएसआरएस में अपने काम के साथ एक परीक्षण प्रश्न बनाया। मैं प्रबंधन स्टूडियो के अंदर इसे संपादित करूँगा और उसके बाद मूल्यों को वापस बीआईडीएस में पेस्ट कर दूंगा। "StudentID" और "TeacherID" नाम दो पैरामीटर मान लिया जाये, क्वेरी देखा की तरह:

DECLARE @StudentID int 
DECLARE @TeacherID int 

SELECT @StudentID = StudentID FROM Students WHERE StudentName LIKE 'John Doe' 
SELECT @TeacherID = TeacherID FROM Teachers WHERE TeacherName LIKE 'Mr. Jones' 

-- PASTE IN QUERY FROM BIDS BELOW 

यह मैं ड्रॉप-डाउन पैरामीटर सूची से वास्तविक पाठ मानों का उपयोग करने और केवल अपनी क्वेरी में पेस्ट की अनुमति दी। फिर मैं प्रबंधन स्टूडियो में क्वेरी को अनुकूलित कर सकता था और फिर परिणाम से खुश होने पर इसे वापस बीआईडीएस में पेस्ट कर सकता था।

+0

धन्यवाद हारून। यदि उपयोगकर्ता एकाधिक छात्र आईडी दर्ज करने में सक्षम होना चाहते हैं तो आप बहु-मूल्य पैरामीटर को कैसे संभालेंगे या परीक्षण करेंगे? या उदाहरण के लिए आपके पास 'जॉन डो' नामक 4 अलग-अलग छात्र थे। – DavidStein

+0

मैं कहना चाहता हूं कि एक साफ चाल थी, लेकिन मैं आमतौर पर यह सुनिश्चित करने के लिए कड़ी मेहनत करता हूं कि यह उन कुछ मामलों में काम करता है जिनकी मुझे आवश्यकता है। एसएसआरएस एक वास्तविक पैरामीटर के बजाय टेक्स्ट प्रतिस्थापन करता है, जहां आपके पास "जहां छात्रवृत्ति (@StudentIDs) है" यह वास्तव में गतिशील एसक्यूएल आउटपुट करेगा "जहां छात्रवृत्ति IN (65, 66, 67)"। मुझे लगता है कि आप अपने टेक्स्ट को sp_executesql के अंदर लपेट सकते हैं लेकिन फिर आप सिंटैक्स हाइलाइटिंग खो देते हैं। हमेशा के रूप में, कोई अच्छा समाधान नहीं है। –

7

आप अपने एसएसआरएस रिपोर्ट सर्वर के खिलाफ नीचे की तरह कुछ चला सकते हैं। आप एसक्यूएल को देख सकेंगे जो रिपोर्ट डेटासेट द्वारा निष्पादित किया जा रहा है।

;WITH XMLNAMESPACES (
    DEFAULT 'http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition', 
    'http://schemas.microsoft.com/SQLServer/reporting/reportdesigner' AS rd 
), 
ReportData AS 
(
    SELECT name ReportName 
      , x.value('CommandType[1]', 'VARCHAR(50)') AS CommandType 
      , x.value('CommandText[1]','VARCHAR(8000)') AS CommandText 
      , x.value('DataSourceName[1]','VARCHAR(50)') AS DataSource 
    FROM (SELECT name 
        , CAST(CAST(content AS VARBINARY(MAX)) AS XML) AS reportXML 
      FROM ReportServer.dbo.Catalog 
      WHERE content IS NOT NULL 
        AND type != 3) a 
        CROSS APPLY reportXML.nodes('/Report/DataSets/DataSet/Query') r(x) 
) 

SELECT * 
FROM ReportData 
3

क्या मैं सामान्य रूप से करते एसक्यूएल प्रोफाइलर चलाया जाता है जब मैं रिपोर्ट चलाने और मानकों के साथ इसे से बाहर क्वेरी खींच।

+0

ओपी विशेष रूप से एसक्यूएल प्रोफाइलर चलाने के बिना बताता है ... – barrypicker

0

फ़ाइल बंद करें, .rdlc से .rdl में एक्सटेंशन बदलें और इसे फिर से खोलें। इसे एचटीएमएल के रूप में प्रदर्शित करना चाहिए। अब "चयन करें" के लिए एक खोज करें और वहां आप जाओ!

+0

रन-टाइम पैरामीटर .rdl परिभाषा में शामिल किए जाएंगे। – barrypicker

संबंधित मुद्दे