1

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

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

谢谢

4

1 回答 1

1

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

但是,您可以做的是让您的生成器在事务中执行存储过程,并分析生成的SqlDataReader。看看GetName ()、GetFieldType () 和GetSchemaTable () 方法来构造你的结果类。

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

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

于 2011-03-09T05:53:28.107 回答