2017-01-03 29 views
0

Ich habe eine dynamisch gespeicherte Prozedur, die eine mdx-Anweisung für eine OpenRowset-Abfrage erstellen. So kann es vorkommen, dass die Objekte aus der mdx-Anweisung leer sind. In diesem Fall möchte ichSQL OpenRowset - Objekt hat keine Spalten

SQL einen leeren String zurück Server gibt mir diese Fehlermeldung: "Der OLE DB-Provider‚‘für den Verbindungsserver‚(null)‘zeigt an, dass entweder das Objekt keine Spalten oder der aktuelle Benutzer tut keine Berechtigungen für dieses Objekt haben. "

Ich habe versucht, verschiedene Dinge (Catch-Anweisung, sp_describe_first_result_set), aber nichts funktionierte ...

Wie kann ich diesen Fehler umgehen? In meiner Aussage unten, dh. der Kunde ‚Abbas‘ ist nicht verfügbar ...

SELECT A.* FROM OpenRowset('MSOLAP', 'DATASOURCE=.; Initial Catalog=CUBE',' 

SELECT  
    {[Dim Customer].[v Dim Customer Name].[Customer].&[Abbas]} * 
    {[Dim Salesperson].[Lastname].&[Fima 1]} * 
    {[Dim Creditcard].[v Dim Creditcard Cardtype].[Cardtype].&[Vista]} ON 0 


FROM CUBE 

WHERE [Measures].[total] 

') as A 

Antwort

1

Bitte versuchen Sie es Maßnahmen auf Spalten und Dimensionen auf Zeilen setzen:

SELECT A.* FROM OpenRowset('MSOLAP', 'DATASOURCE=.; Initial Catalog=CUBE',' 

SELECT  {[Measures].[total]} ON 0, 
    {[Dim Customer].[v Dim Customer Name].[Customer].&[Abbas]} * 
    {[Dim Salesperson].[Lastname].&[Fima 1]} * 
    {[Dim Creditcard].[v Dim Creditcard Cardtype].[Cardtype].&[Vista]} ON 1 
FROM CUBE 

') as A 
+0

Vielen Dank - das funktioniert ... –

Verwandte Themen