2011-03-07 96 views
1

我已經有一個基於SQL DMO的代碼生成器,它爲SQL Server 2008數據庫中的任何存儲過程寫入C#函數。當然,代碼生成器只能處理具有輸入和輸出參數的存儲過程。對於返回多個記錄的存儲過程,代碼生成器會返回一個數據表,其中每行代表一個輸出記錄。SQL基於DMO的代碼生成器

如果存儲過程的輸出是select * from Member where MemberID=1,那麼有沒有使用SQL DMO確定存儲過程將返回的字段的方法?

感謝

回答

1

我的猜測是,你不能這樣做在DMO,因爲DMO依賴於存儲在SQL Server元信息和SP的結果集的描述不存儲在這種方式(據我知道)。

你能做什麼,但是,是讓你產生執行存儲過程transaction內,並分析產生的SqlDataReader。看看GetName(),GetFieldType()和GetSchemaTable()方法來構造你的結果類。

執行後,回滾事務(以防SP對數據庫進行任何更改)。

您也可以考慮將您的發電機升級到SMO,因爲將來不會支持DMO MSDN states