MSBuild возвращаемое значение из базы данных - PullRequest
2 голосов
/ 09 января 2009

Кто-нибудь знает, как вернуть значение из базы данных (sql) в скрипт MSBuild? Я хочу получить значение в свойстве, чтобы передать его последующим задачам сборки.

В данный момент я возился с чем-то вроде следующего, но это возвращает -1, чтобы указать, что запрос успешно выполнен, тогда как мне нужен фактический результат запроса. (SqlExecute из задач сообщества).

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

Ответы [ 4 ]

1 голос
/ 09 января 2009

Rob

Хорошее мышление. Открытие задачи сообщества в отражателе показывает, что задача 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)" />
0 голосов
/ 09 января 2009

Пробовал "выбрать * из dbo.trade", все равно выдает -1.

Документация по заданию сообщества гласит: «Выведите возвращаемое количество / значение возврата», но больше не рассказывает, как его использовать.

0 голосов
/ 09 января 2009

Часто проще всего открыть задачи сообщества в Reflector или проверить базу кода напрямую, чтобы увидеть, как она предназначена для использования.

0 голосов
/ 09 января 2009

Вы пробовали "выбрать * из dbo.trade"? В соответствии с документами msbuild communitytasks Result возвращает количество строк для данного оператора, в то время как ваш оператор, вероятно, возвращает одну строку с вашим счетчиком.

...