我已经有一个基于SQL DMO的代码生成器,它通过SQL Server2008数据库为任何存储过程编写C#函数。但是,目前代码生成器只能处理具有输入和输出参数的存储过程。对于返回多条记录的存储过程,代码生成器将返回一个datatable,其中的每一行都表示一条输出记录。
如果存储过程的输出为select * from Member where MemberID=1,是否有办法使用SQL DMO来确定存储过程将返回的字段
谢谢
发布于 2011-03-09 13:53:28
我的猜测是,您不能在DMO中这样做,因为DMO依赖于存储在SQL Server中的元信息,而SP的结果集描述不是以这种方式存储的(据我所知)。
但是,您可以做的是让生成器在transaction中执行存储过程,并分析生成的SqlDataReader。看看用来构造结果类的GetName()、GetFieldType()和GetSchemaTable()方法。
执行后,回滚事务(以防SP对数据库进行任何更改)。
您还可以考虑将您的生成器升级到SMO,因为MSDN states将来将不支持DMO。
https://stackoverflow.com/questions/5224592
复制相似问题