MSBuild从数据库返回值

时间:2009-01-09 13:59:09

标签: sql-server msbuild automation build-automation

有谁知道如何将(sql)数据库中的值返回到MSBuild脚本?我希望将值放入属性中,以便将其传递给后续构建任务。

我正在摆弄类似下面的内容,但是返回-1表示查询已成功执行,而我想要的是查询的实际结果。 (来自社区任务的SqlExecute)。

    <SqlExecute Command="select count(*) from dbo.trade"
        ConnectionString="XXXX" >
        <Output PropertyName="TradeCount" TaskParameter="Result" />
    </SqlExecute>
    <Message Text="$(TradeCount)" />

4 个答案:

答案 0 :(得分:1)

罗布,

好的想法。在反射器中打开社区任务会发现SqlExecute任务永远不会返回查询的值。

this._result = command.ExecuteNonQuery();

这让我回到尝试使用oSql和Exec任务...

    <Exec Command="osql -n -S $(DatabaseMachineName) -E -q &quot;select count(*) from trade&quot; -b -d $(DatabaseName)">
        <Output PropertyName="TradeCount" TaskParameter="Outputs"/>
    </Exec>

    <Message Text="Result:$(TradeCount)" />

答案 1 :(得分:0)

您是否尝试过“select * from dbo.trade”? 根据msbuild communitytasks文档,Result返回给定语句的行数,而您的语句可能返回包含计数的单行。

答案 2 :(得分:0)

尝试“select * from dbo.trade”,仍然给出相同的-1。

社区任务文档说输出“输出返回计数/值”,但它没有进一步说明如何使用它。

答案 3 :(得分:0)

通常最简单的方法是在Reflector中打开社区任务或直接检查代码库以查看它的使用方式。