共用方式為


處理錯誤和警告 (XMLA)

當 XML for Analysis (XMLA) DiscoverExecute 方法呼叫未執行、成功執行但產生錯誤或警告,或成功執行,但傳回包含錯誤的結果時,需要錯誤處理。

錯誤 報表
XMLA 方法呼叫未執行 Microsoft SQL Server SQL Server Analysis Services傳回 SOAP 錯誤訊息,其中包含失敗的詳細資料。

如需詳細資訊,請參閱 處理 SOAP 錯誤一節。
方法呼叫成功時的錯誤或警告 SQL Server Analysis Services分別在元素的Messages屬性中包含每個錯誤或警告的錯誤或警告元素,其中包含方法呼叫的結果。

如需詳細資訊,請參閱 處理錯誤和警告一節。
方法呼叫成功時結果中的錯誤 SQL Server Analysis Services包含錯誤或警告的內嵌錯誤警告元素,分別在方法呼叫結果的適當Cellrow元素內。

如需詳細資訊,請參閱 處理內嵌錯誤和警告一節。

處理 SOAP 錯誤

當發生下列情況時,SQL Server Analysis Services傳回 SOAP 錯誤:

  • 包含 XMLA 方法的 SOAP 訊息格式不正確,或無法由 SQL Server Analysis Services 實例驗證。

  • 發生通訊錯誤或是其他有關包含 XMLA 方法之 SOAP 訊息的錯誤。

  • XMLA 方法未在 SQL Server Analysis Services 實例上執行。

以 "XMLForAnalysis" 開頭的 XMLstartA 之 SOAP 錯誤碼,後面會接著句號和十六進位的 HRESULT 結果碼。 例如,0x80000005 的錯誤碼會格式化為 "XMLForAnalysis.0x80000005"。 如需有關 SOAP 錯誤格式的詳細資訊,請參閱 W3C 簡易物件存取通訊協定 (SOAP) 1.1 中的 Soap 錯誤。

錯誤碼資訊

下表將顯示包含在 SOAP 回應之詳細資料區段中的 XMLA 錯誤碼資訊。 資料行是在 SOAP 錯誤的詳細資料區段中某個錯誤的屬性。

資料行名稱 類型 描述 允許 Null1
ErrorCode UnsignedInt 傳回指出方法成功或失敗的代碼。 十六進位值必須轉換成 UnsignedInt 值。
WarningCode UnsignedInt 傳回指出警告狀況的代碼。 十六進位值必須轉換成 UnsignedInt 值。
說明 String 產生錯誤的元件所傳回的警告文字與描述。
來源 String 產生錯誤或警告之元件的名稱。
HelpFile String 描述錯誤或警告之說明檔或主題的路徑或 URL。

1 指出是否需要資料,而且必須傳回資料,或者資料是否為選擇性,如果資料行不適用,則允許 Null 字串。

下列是方法呼叫失敗時所發生的 SOAP 錯誤之範例:

<?xml version="1.0"?>  
   <SOAP-ENV:Envelope  
   xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"  
   SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">  
      <SOAP-ENV:Fault>  
         <faultcode>XMLAnalysisError.0x80000005</faultcode>  
         <faultstring>The XML for Analysis provider encountered an error.</faultstring>  
         <faultactor>XML for Analysis Provider</faultactor>  
         <detail>  
<Error  
ErrorCode="2147483653"  
Description="An unexpected error has occurred."  
Source="XML for Analysis Provider"  
HelpFile="" />  
         </detail>  
      </SOAP-ENV:Fault>  
</SOAP-ENV:Envelope>  

處理錯誤和警告

如果命令執行之後發生下列情況,SQL Server Analysis Services會傳回命令元素中的Messages屬性:

  • 方法本身並未失敗,但在方法呼叫成功之後,在SQL Server Analysis Services實例上發生失敗。

  • 當命令成功時,SQL Server Analysis Services實例會傳回警告。

Messages屬性會遵循元素所包含的所有其他屬性,而且可以包含一或多個Message元素。 接著,每個 Message 元素都可以包含單一 錯誤警告 元素,分別描述指定命令發生的任何錯誤或警告。

如需 Messages 屬性中包含的錯誤和警告詳細資訊,請參閱 Messages 元素 (XMLA)

處理序列化期間的錯誤。

如果在SQL Server Analysis Services實例已經開始序列化成功執行命令的輸出之後發生錯誤,SQL Server Analysis Services會在錯誤點傳回不同命名空間中的Exception元素。 SQL Server Analysis Services 實例接著會關閉所有開啟的專案,讓傳送至用戶端的 XML 檔是有效的檔。 實例也會傳回 Messages 元素,其中包含錯誤的描述。

處理內嵌錯誤和警告

如果 XMLA 方法本身未失敗,SQL Server Analysis Services傳回命令的內嵌錯誤警告,但在 XMLA 方法呼叫成功之後,方法所傳回之結果中資料元素的特定錯誤 SQL Server Analysis Services就會發生。

如果發生資料格的特定問題或其他使用MDDataSet資料類型包含在元素內的資料,例如資料格的安全性錯誤或格式化錯誤,SQL Server Analysis Services會提供內嵌錯誤警告元素。 在這些情況下,SQL Server Analysis Services分別傳回包含錯誤或警告之 Cell 或row元素中的錯誤警告元素。

下列範例說明結果集,其中包含使用Statement命令從Execute方法傳回之資料列集中的錯誤。

<return>  
   ...  
   <root>  
      ...  
      <CellData>  
      ...  
         <Cell CellOrdinal="10">  
            <Value>  
               <Error>  
                  <ErrorCode>2148497527</ErrorCode>   
                  <Description>Security Error.</Description>   
               </Error>  
            </Value>  
         </Cell>  
      </CellData>  
      ...  
   </root>  
   ...  
</return>  

另請參閱

在 Analysis Services 中使用 XMLA 進行開發