Belirli veri kaynakları (Reporting Services) ile sorgu parametreleri kullanma
Bir veri kümesi için bir sorgu tanımladığınızda, veri kaynağı türünü seçersiniz.Veri kaynağı türü, veri işleme uzantısını veya kayıtlı veri kaynağına bağlanmak için kullanılan .NET Framework veri sağlayıcısını belirtir.Veri sağlayıcısı, veri kaynağı ile etkileşen yazılım katmanıdır ve bir sorgudaki değişkenleri kullanmak için bulunan desteği belirler.Bu konuda, belirli bir sonuç kümesi için bir sorgunun, bağlı olduğunuz veri kaynağına bağlı olarak nasıl değiştiğini ve sorguda değişken içerip içermediğini gösterir.
Sorgu Değişkenleri ve Veri Sağlayıcılar
Aşağıdaki tabloda veri sonuçlarını gösterir AdventureWorks Örnek Veritabanı'nı tıklatın. Bu sonuç oluşturabileceğiniz küme çalıştırarak bir Transact-SQL karşı sorgu AdventureWorks Örnek veritabanı veya bir MDX sorgusu karşı Adventure Works Küp parçası olarak dağıtılan AdventureWorks Örnek raporlar. Sonuç küme iki sütun gösterir: "Sıradağlar" sözcüğünü ve karşılık gelen ınternet satış sayısını içeren Ürün modelleri adları.
Name |
InternetSales (Internet Satışı) |
---|---|
Fender Seti - Dağ |
2121 |
HL Dağ Tekeri |
1396 |
LL Dağ Tekeri |
862 |
ML Dağ Tekeri |
1161 |
Dağ Şişe Kafesi |
2025 |
Dağ Tekeri Borusu |
3095 |
Dağ-100 |
396 |
Dağ-200 |
3552 |
Dağ-400-W |
543 |
Dağ-500 |
479 |
Bayan Dağ Şortu |
1019 |
Sonraki bölümlerde, bu sonucu oluşturmak için kullanılan sorgu görürsünüz küme, ilk ilişkisel bir veritabanında sonra çok boyutlu bir veritabanı.
İlişkisel Veritabanı Veri Kaynakları
For a relational database like Microsoft SQL Server, you can create queries using Transact-SQL.Bu sorgu, değiştirilmez kodlu bir değere ayarlanmış bir WHERE deyimi ekleyerek sonuçları sınırlamasına rağmen, sorgu bir değişken içermez.
Transact-SQL Sorgusu |
---|
SELECT PM.Name, Count(*) as InternetSales FROM Sales.SalesOrderHeader SOH INNER JOIN Sales.SalesOrderDetail SOD ON SOH.SalesOrderID = SOD.SalesOrderID INNER JOIN Production.Product PP ON SOD.ProductID = PP.ProductID INNER JOIN Production.ProductModel PM ON PP.ProductModelId = PM.ProductModelID WHERE (SOH.OnLineOrderFlag = 1 AND PM.Name LIKE ('%Mountain%')) GROUP BY PM.Name ORDER BY PM.Name |
Için ürün model adını, bir değişken eklemek için PM.Name, sorgu parametresi NEREDE belirlemek gereksinim duyduğunuz yan tümce. Aşağıdaki tabloda, farklı veri sağlayıcılar için sorgu parametrelerinin nasıl belirtildiği gösterilmektedir.Veri sağlayıcısı, veri kaynağı türünü seçtiğinizde otomatik olarak sizin için seçilir.Bu veri sağlayıcısının bağlantı dizesi ikinci sütunda gösterilir.Tablodaki sorgu, yukarıdaki sorguyla aynıdır ancak forma, veri sağlayıcısı tarafından desteklenen bir parametre eklemiştir.
Veri Kaynağı Türü |
Veri Sağlayıcısı |
Query |
---|---|---|
Microsoft SQL Server |
Microsoft SQL Server (SqlClient) Bağlantı Dizesi: Data Source=.;Initial Catalog=AdventureWorks |
SELECT PM.Name, Count(*) FROM Sales.SalesOrderHeader SOH INNER JOIN Sales.SalesOrderDetail SOD ON SOH.SalesOrderID = SOD.SalesOrderID INNER JOIN Production.Product PP ON SOD.ProductID = PP.ProductID INNER JOIN Production.ProductModel PM ON PP.ProductModelId = PM.ProductModelID WHERE (SOH.OnLineOrderFlag = 1 AND (PM.Name LIKE '%' + @Mountain + '%')) GROUP BY PM.Name ORDER BY PM.Name |
OLE DB |
Microsoft SQL Server OLE DB Sağlayıcısı Bağlantı Dizesi: Provider=SQLOLEDB.1;Data Source=.;Initial Catalog=AdventureWorks |
SELECT PM.Name, Count(*) FROM Sales.SalesOrderHeader SOH INNER JOIN Sales.SalesOrderDetail SOD ON SOH.SalesOrderID = SOD.SalesOrderID INNER JOIN Production.Product PP ON SOD.ProductID = PP.ProductID INNER JOIN Production.ProductModel PM ON PP.ProductModelId = PM.ProductModelID WHERE ((SOH.OnLineOrderFlag = 1) AND PM.Name LIKE ('%' + ? + '%')) GROUP BY PM.Name ORDER BY PM.Name |
Oracle |
Microsoft SQL Server (OracleClient) |
SELECT PM.Name, Count(*) FROM Sales.SalesOrderHeader SOH INNER JOIN Sales.SalesOrderDetail SOD ON SOH.SalesOrderID = SOD.SalesOrderID INNER JOIN Production.Product PP ON SOD.ProductID = PP.ProductID INNER JOIN Production.ProductModel PM ON PP.ProductModelId = PM.ProductModelID WHERE ((SOH.OnLineOrderFlag = 1) AND PM.Name LIKE '%' + :1 + '%') GROUP BY PM.Name ORDER BY PM.Name |
OLE DB |
Herhangi bir kayıtlı .NET Framework Veri sağlayıcı |
Sağlayıcıya özgü. |
Bu örneklerde, bir değişkeni değişken değeri için bir sınama için "Sıradağlar" sözcüğü testini değiştirme sorgusunun WHERE yan tümce eklenmiştir.
SQL Server için .NET veri sağlayıcısı (@) karakteri ile başlayan adlandırılmış değişkenleri destekler.Örneğin, PM.Name LIKE '%' + @Mountain + '%').
SQL Server için OLE DB sağlayıcısı adlandırılmış değişkenleri desteklemez.Bir değişken belirtmek için soru işareti (?) karakterini kullanın.OLE DB sağlayıcısına geçen parametrelerin, WHERE deyimindeki sıralarına göre geçmeleri gerekir.Örneğin, PM.Name LIKE ('%' + ? + '%').
Oracle için .NET veri sağlayıcısı iki nokta üst üste (:) karakteri ile başlayan numaralandırılmış parametreleri destekler.Örneğin, PM.Name LIKE '%' + :1 + '%').
Diğer OLE DB veri sağlayıcıları tarafından sağlanan değişken desteği veri sağlayıcısına özeldir.Daha fazla bilgi için veri sağlayıcısının belgelerine bakın.
Bir veri kaynağı türü ile ilişkili sorgu tasarımcısı, tanımlanan her değişken için bir sorgu parametresi oluşturur.Bu sorgu parametreleri, Veri kümesi özellik sayfalarının Parametre sekmesinde listelenir.Her sorgu parametresi için, Dize türünde bir rapor parametresi oluşturulur.Veri kümesi için tanımlanan sorgu parametresi değerleri, ilgili rapor parametresine ayarlanır.Rapor parametresi veri türünü ve Veri görünümündeyken Rapor menüsünden erişilebilen Rapor Özellikleri iletişim kutusundaki diğer özellikleri düzenleyebilirsiniz.Bu sorgu parametrelerini el ile de oluşturabilir, düzenleyebilir veya silebilirsiniz.Daha fazla bilgi için bkz: Veri Kümesi Özellikleri İletişim Kutusu, Parametreler.
Çok Boyutlu Veritabanı Veri Kaynakları
Çok boyutlu bir veritabanı gibi Analysis Services, MDX KOMUTUNU kullanarak bir sorgu oluşturabilirsiniz. Bu sorgu, değiştirilmez kodlu bir değere ayarlanmış bir Filtre deyimi ekleyerek sonuçları sınırlamasına rağmen, sorgu bir değişken içermez.
MDX Sorgusu |
---|
SELECT NON EMPTY { [Measures].[Internet Order Count] } ON COLUMNS, NON EMPTY { ([Product].[Model Name].[Model Name].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM ( SELECT ( Filter( [Product].[Model Name].[Model Name].ALLMEMBERS, Instr([Product].[Model Name].currentmember.Properties( 'Member_Caption' ), 'Mountain' ) > 0 ) ) ON COLUMNS FROM [Adventure Works]) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS |
Için ürün model adını, bir değişken eklemek için @ProductModelName, bir SÜZGEÇ tümcesi eklemek gerekir. Aşağıdaki tabloda, çok boyutlu veritabanlarında değişkenlerin bir FİLTRE deyiminin bir parçası olduğu gösterilmektedir.Verileri kaynak türü, yeni bir veri oluşturduğunuzda, açılan listeden seçin değerdir kaynak için Reporting Services. Veri sağlayıcısı, veri kaynağı türünü seçtiğinizde otomatik olarak sizin için seçilir.Bu veri sağlayıcısının bağlantı dizesi de ikinci sütunda gösterilir.Tablodaki sorgu, yukarıdaki sorguyla aynıdır ancak forma, veri sağlayıcısı tarafından desteklenen bir parametre eklemiştir.
Veri Kaynağı Türü |
Veri Sağlayıcısı |
Query |
---|---|---|
Microsoft SQL Server Analysis Services |
SQL Server Analysis Services (AdomdClient) Bağlantı Dizesi: Data Source=.;Initial Catalog="Adventure Works DW" |
SELECT NON EMPTY { [Measures].[Internet Order Count] } ON COLUMNS, NON EMPTY { ([Product].[Model Name].[Model Name].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM ( SELECT ( Filter( [Product].[Model Name].[Model Name].ALLMEMBERS, Instr( [Product].[Model Name].currentmember.Properties( 'Member_Caption' ), @ProductModelName ) > 0 ) ) ON COLUMNS FROM [Adventure Works]) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS |
OLE DB |
Microsoft 9.0 Çözümlemesi için OLE DB sağlayıcı hizmetleri Bağlantı Dizesi: Provider=MSOLAP.3;Data Source=.;Initial Catalog="Adventure Works DW" |
OLAP için OLE DB parametreli sorgular'ı desteklemiyor. Geçici çözümler açıklanır bu teknik inceleme: "TümleştirmeAnalysis Services ile Reporting Services". |
Bu örneklerde, bir değişkeni değişken değeri için bir sınama için sözcüğü Sıradağlar testini değiştirme sorgusunun WHERE yan tümce eklenmiştir.
The Microsoft SQL Server Analysis Services supports named parameters defined in the Filter section of the MDX query designer.Adlandırılmış değişkenler (@) karakteri ile başlar.Örneğin, @ProductModelName.
The Microsoft OLE DB sağlayıcı for Analysis Services 9.0 does not support parameterized queries. Daha fazla bilgi için, msdn.microsoft.com sayfasında "Analysis Services’ı Reporting Services ile Tümleştirme" konusuna bakın.
Diğer çok boyutlu veri sağlayıcıları tarafından sağlanan değişken desteği veri sağlayıcısına özeldir.Daha fazla bilgi için veri sağlayıcısının belgelerine bakın.
Bir veri kaynağı türü ile ilişkili sorgu tasarımcısı, tanımlanan her değişken için bir sorgu parametresi oluşturur.Her parametre için geçerli değerler oluşturmak amacıyla otomatik olarak özel bir veritabanı oluşturulur.Bu sorgu parametreleri, Veri kümesi özellik sayfalarının Parametre sekmesinde listelenir.Her sorgu parametresi için, Dize türünde bir rapor parametresi oluşturulur.Veri kümesi için tanımlanan sorgu parametresi değerleri, ilgili rapor parametresine ayarlanır.Bu veri kümesi parametrelerini el ile de oluşturabilir, düzenleyebilir veya silebilirsiniz.Daha fazla bilgi için bkz: Nasıl Yapılır: Analysis Services MDX sorgu tasarımcısında parametreleri tanımlayın..
Veri, her sorgu için geçerli değerler sağlamak için sorgunun işleneceği her oluşturulur.
See Also