Aracılığıyla paylaş


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.