Multiple-step OLE DB operation generated errors  什么意思 ?、
谢谢,小弟非常着急,因为工程要交工,一饭碗求

解决方案 »

  1.   

    發生的原因
    這個錯誤可能有二個原因: • 登錄中,OLE DB 提供者之 CLSID 的機碼下,可能有命名為 OLEDB_SERVICES 的項目,如果使用 OLE DB 提供者與沒有 OLEDB_SERVICES 項目的 ADO 連線,且 ADO 試著設定提供者不支援的屬性,就會發生這個錯誤。如需此登錄項目的詳細資訊,請參閱〈解決方案〉一節。  
    • 如果有 OLEDB_SERVICES 項目,但 ADO 連線字串有問題,就會發生這個錯誤。  
    如果 OLEDB_SERVICES 登錄項目不存在,設定屬性的呼叫就會直接呼叫提供者。如果提供者不支援該屬性,ADO 執行的 SetProperties OLE DB 呼叫就會失敗。如果連線時需要此屬性就會發生嚴重錯誤。如果連線字串明確包括此屬性,連線時就需要此屬性。 如果屬性設定是選擇性的,就不會發生嚴重錯誤。這就是當沒有明確設定連線字串中的屬性而進行連線時會發生的狀況。這時,ADO 會將屬性設定為 True 但標示為選擇性。 
    解決方案
    您可以使用下列方法解決這個問題: • ADO 連線字串不要使用「Persist Security Info」關鍵字。  
    • 增加下列 OLEDB_SERVICES 登錄項目: 重要:本文包含編輯登錄的資訊。在編輯系統登錄之前,請確定萬一發生問題時,您知道如何復原系統登錄。如需還原作業的相關資訊,請參閱 Regedit.exe 中的〈還原登錄〉說明主題,或 Regedt32.exe 中的〈還原登錄機碼〉說明主題。1. 啟動登錄編輯器 (Regedit.exe)。  
    2. 在 HKEY_CLASSES_ROOT\CLSID 下的登錄找出 OLE DB 提供者的 CLSID。例如,下列是 Microsoft OLE DB Provider for SQL Server (SQLOLEDB) 的登錄機碼: 
    HKEY_CLASSES_ROOT\CLSID\{0C7FF16C-38E3-11d0-97AB-00C04FC2AD98} 
    按一下 CLSID,然後在 [編輯] 功能表按一下 [新增值],然後新增下列登錄值: 
    值的名稱:OLEDB_SERVICES 
    資料類型:REG_DWORD 
    值: 0xFFFFFFFF 注意 :如果要找出您使用之提供者的 CLSID,請在 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ 登錄下搜尋提供者的 ProgID (例如,SQLOLEDB)。在 ProgID 下會有命名為 CLSID 的機碼。  
     
    • 如果滿足上述條件之後仍收到錯誤,請檢查連線字串是否有其他錯誤。