基于SQL DMO的代码生成器

时间:2011-03-07 20:00:17

标签: sql-server sqldmo

我已经有一个基于SQL DMO的代码生成器,它为SQL Server 2008数据库中的任何存储过程编写C#函数。然而,Currenly代码生成器只能处理具有输入和输出参数的存储过程。对于返回多个记录的存储过程,代码生成器返回一个数据表,其中的行分别表示输出记录。

如果存储过程的输出是select * from Member where MemberID=1,是否有办法使用SQL DMO来确定存储过程返回的字段?

由于

1 个答案:

答案 0 :(得分:1)

我的猜测是你不能在DMO中这样做,因为DMO依赖于存储在SQL Server中的元信息,并且SP的结果集描述不是以这种方式存储的(据我所知)。

然而,您可以做的是让您的生成器在transaction内执行存储过程,并分析生成的SqlDataReader。查看GetName(),GetFieldType()和GetSchemaTable()方法来构建结果类。

执行后,回滚事务(如果SP对数据库进行任何更改)。

您也可以考虑将您的生成器升级到SMO,因为MSDN states将来不会支持DMO。