Verwenden von Abfrageparametern mit bestimmten Datenquellen
Neu: 17. Juli 2006
Zum Definieren einer Abfrage für ein Dataset wählen Sie den Datenquellentyp aus. Der Datenquellentyp gibt die Datenverarbeitungserweiterung bzw. den registrierten .NET-Datenprovider an, die/der zum Verbinden mit der Datenquelle verwendet wird. Beim Datenprovider handelt es sich um eine Softwareschicht, die mit der Datenquelle interagiert und bestimmt, welche Unterstützung für die Verwendung von Variablen in einer Abfrage zur Verfügung steht. In diesem Thema erfahren Sie, wie sich eine Abfrage für ein bestimmtes Resultset je nach verbundener Datenquelle und Vorhandensein von in der Abfrage enthaltenen Variablen ändert.
Abfragevariablen und Datenprovider
In der folgenden Tabelle werden die Ergebnisse für Daten aus der AdventureWorks-Beispieldatenbank aufgeführt. Sie können dieses Resultset erstellen, indem Sie eine Transact-SQL-Abfrage für die AdventureWorks-Beispieldatenbank oder eine MDX-Abfrage für den als Teil des AdventureWorks-Beispielberichts bereitgestellten Adventure Works-Cube ausführen. Das Resultset zeigt zwei Spalten an: die Namen der Produktmodelle, die das Wort "Mountain" enthalten, sowie die zugehörige Anzahl von Internetverkäufen.
Name | InternetSales |
---|---|
Fender Set – Mountain |
2121 |
HL Mountain Tire |
1396 |
LL Mountain Tire |
862 |
ML Mountain Tire |
1161 |
Mountain Bottle Cage |
2025 |
Mountain Tire Tube |
3095 |
Mountain-100 |
396 |
Mountain-200 |
3552 |
Mountain-400-W |
543 |
Mountain-500 |
479 |
Women's Mountain Shorts |
1019 |
Im folgenden Abschnitt wird die zum Erstellen dieses Resultsets verwendete Abfrage für eine relationale Datenbank und für eine multidimensionale Datenbank vorgestellt.
Relationale Datenbank als Datenquelle
Für eine relationale Datenbank wie Microsoft SQL Server können Sie Abfragen mithilfe von Transact-SQL erstellen. Diese Abfrage schränkt zwar die Ergebnisse durch eine enthaltene WHERE-Klausel mit hartcodiertem Wert ein, enthält jedoch noch keine Variable.
Transact-SQL-Abfrage |
---|
|
Um eine Variable für den Produktmodellnamen, PM.Name
, hinzuzufügen, müssen Sie in der WHERE-Klausel einen Abfrageparameter angeben. In der nachfolgenden Tabelle wird gezeigt, wie Abfrageparameter für verschiedene Datenprovider angegeben werden. Der Datenprovider wird automatisch für Sie ausgewählt, wenn Sie einen Datenquellentyp auswählen. Die Verbindungszeichenfolge für diesen Datenprovider ist in der zweiten Spalte angegeben. Die Abfrage in der Tabelle ist mit der obigen Abfrage identisch, verfügt jedoch über einen Parameter in der vom Datenprovider unterstützten Form.
Datenquellentyp | Datenprovider | Abfrage |
---|---|---|
Microsoft SQL Server |
Microsoft SQL Server (SqlClient) Verbindungszeichenfolge:
|
|
OLE DB |
Microsoft OLE DB-Anbieter für SQL Server Verbindungszeichenfolge:
|
|
Oracle |
Microsoft SQL Server (OracleClient) |
|
OLE DB |
Jeder registrierte .NET-Datenprovider |
Anbieterspezifisch |
In diesen Beispielen wurde der WHERE-Klausel in der Abfrage eine Variable hinzugefügt und der Test auf Vorhandensein des Wortes "Mountain" zu einem Test auf Vorhandensein eines entsprechenden Variablenwertes geändert.
- Der .NET-Datenprovider für SQL Server unterstützt benannte Variablen, die mit dem at-Zeichen (@) beginnen. Beispiel:
PM.Name ``LIKE '%' + @Mountain + '%')
. - Der OLE DB-Anbieter für SQL Server unterstützt keine benannten Variablen. Verwenden Sie zum Angeben einer Variablen das Fragezeichen (?). An den OLE DB-Anbieter übergebene Parameter müssen entsprechend ihrer Reihenfolge in der WHERE-Klausel übergeben werden. Beispiel:
PM.Name ``LIKE ('%' + ? + '%')
. - Der .NET-Datenprovider für Oracle unterstützt nummerierte Parameter, die mit einem Doppelpunkt (:) beginnen. Beispiel:
PM.Name ``LIKE '%' + :1 + '%')
. - Die Unterstützung für Variablen durch andere OLE DB-Datenprovider hängt vom betreffenden Datenprovider ab. Informationen dazu finden Sie in der Dokumentation des Datenproviders.
Der einem Datenquellentyp zugeordnete Abfrage-Designer erstellt zu jeder identifizierten Variablen einen Abfrageparameter. Diese Abfrageparameter sind auf der Registerkarte Parameter der Eigenschaftenseiten des Datasets aufgelistet. Zu jedem Abfrageparameter wird ein Berichtsparameter vom Typ String erstellt. Die für das Dataset definierten Abfrageparameterwerte werden auf den entsprechenden Berichtsparameter festgelegt. Sie können den Datentyp des Berichtsparameters und andere Eigenschaften im Dialogfeld Berichtseigenschaften bearbeiten, das in der Datenansicht über das Menü Bericht erreichbar ist. Sie können diese Abfrageparameter auch manuell erstellen, bearbeiten oder löschen. Weitere Informationen finden Sie unter Dataset (Registerkarte Parameter, Berichts-Designer).
Multidimensionale Datenbank als Datenquelle
Für eine multidimensionale Datenbank wie Microsoft Analysis Services können Sie Abfragen mithilfe von MDX erstellen. Diese Abfrage schränkt zwar die Ergebnisse durch eine enthaltene Filter-Klausel mit hartcodiertem Wert ein, enthält jedoch noch keine Variable.
MDX-Abfrage |
---|
|
Um eine Variable für den Produktmodellnamen, @ProductModelName, hinzuzufügen, müssen Sie eine Filter-Klausel hinzufügen. Die folgende Tabelle veranschaulicht, wie für multidimensionale Datenbanken Variablen in eine FILTER-Klausel integriert werden. Der Datenquellentyp ist der Wert, den Sie beim Erstellen einer neuen Datenquelle für Reporting Services in der Dropdownliste auswählen. Der Datenprovider wird automatisch für Sie ausgewählt, wenn Sie einen Datenquellentyp auswählen. Die Verbindungszeichenfolge für diesen Datenprovider ist ebenfalls in der zweiten Spalte angegeben. Die Abfrage in der Tabelle ist mit der obigen Abfrage identisch, verfügt jedoch über einen Parameter in der vom Datenprovider unterstützten Form.
Datenquellentyp | Datenprovider | Abfrage |
---|---|---|
Microsoft SQL Server Analysis Services |
SQL Server Analysis Services (AdomdClient) Verbindungszeichenfolge:
|
|
OLE DB |
Microsoft OLE DB-Anbieter für Analysis Services 9.0 Verbindungszeichenfolge:
|
OLE DB für OLAP unterstützt keine parametrisierten Abfragen. Problemumgehungen werden im Whitepaper über das Integrieren von Analysis Services in Reporting Services beschrieben. |
In diesen Beispielen wurde der WHERE-Klausel in der Abfrage eine Variable hinzugefügt und der Test auf Vorhandensein des Wortes Mountain zu einem Test auf Vorhandensein eines entsprechenden Variablenwertes geändert.
- Microsoft SQL Server Analysis Services unterstützt benannte Parameter, die im Abschnitt Filter des MDX-Abfrage-Designers definiert sind. Benannte Variablen beginnen mit dem at-Zeichen (@). Beispiel:
@ProductModelName
. - Microsoft OLE DB-Anbieter für Analysis Services 9.0 unterstützt keine parametrisierten Abfragen. Weitere Informationen erhalten Sie, wenn Sie unter https://msdn.microsoft.com nach "Integrating Analysis Services with Reporting Services" suchen.
- Die Unterstützung für Variablen durch andere multidimensionale Datenprovider hängt vom betreffenden Datenprovider ab. Informationen dazu finden Sie in der Dokumentation des Datenproviders.
Der einem Datenquellentyp zugeordnete Abfrage-Designer erstellt zu jeder identifizierten Variablen einen Abfrageparameter. Es wird automatisch ein spezielles Dataset erstellt, um gültige Werte für alle Parameter bereitzustellen. Diese Abfrageparameter sind auf der Registerkarte Parameter der Eigenschaftenseiten des Datasets aufgelistet. Zu jedem Abfrageparameter wird ein Berichtsparameter vom Typ String erstellt. Die für das Dataset definierten Abfrageparameterwerte werden auf den entsprechenden Berichtsparameter festgelegt. Sie können dieses Dataset auch manuell erstellen, bearbeiten oder löschen. Weitere Informationen finden Sie unter Vorgehensweise: Definieren von Parametern im MDX- und DMX-Abfrage-Designer für Analysis Services (Berichts-Designer).
Die Datasets zum Bereitstellen von gültigen Werten für jede Abfrage werden bei jeder Verarbeitung der Abfrage erstellt.
Siehe auch
Aufgaben
Vorgehensweise: Zuordnen eines Abfrageparameters zu einem Berichtsparameter (Berichts-Designer)
Konzepte
Verwenden erweiterter Feldeigenschaften für eine Analysis Services-Datenbank
Verwenden des MDX-Abfrage-Designers von Analysis Services im Entwurfsmodus
Verwenden des MDX-Abfrage-Designers von Analysis Services im Abfragemodus
Definieren von Berichtsdatasets für eine relationale SQL Server-Datenbank
Definieren von Berichtsdatasets für relationale Daten in einer Oracle-Datenbank
Andere Ressourcen
Benutzeroberfläche des MDX-Abfrage-Designers von Analysis Services
Benutzeroberfläche des Abfrage-Designers für SQL Server