私は最近、cteクエリのデバッグ中にいくつかの関数を最近変更しました(ここで助けを得ています)。私はちょうどいくつかの関数を変更しました..これは私のクエリが動作するようになりました..しかし、今私のC#のクライアントコードは、私のプログラムロジックのために格納されたprocsを介してそれらの関数を呼び出すときにエラーが発生します "プロシージャまたは関数 'DateTimeOfNextAvailableDataRun' NextDateTime 'は提供されませんでした "複数の値が戻ってきているのでしょうか?SQL server stored proc "プロシージャまたは関数は、パラメータが指定されていません。"
ここで現在の形での機能です:
ALTER FUNCTION dbo.NextAvailableDataDownloadDateTime()
RETURNS date
BEGIN
RETURN (SELECT DATEADD(hour, 18, MIN(TradingDate)) AS TrDate
FROM tblTradingDays
WHERE (DATEADD(hour, 18, TradingDate) > dbo.LatestDataDownloadDate()))
END
そして、それを呼び出すストアドプロシージャ:
ALTER PROC DateTimeOfNextAvailableDataRun
@NextDateTime DateTime2 OUTPUT
AS
SELECT @NextDateTime = dbo.NextAvailableDataDownloadDateTime()
そして最後に変更する前に実行しなかった私のクライアントコード、:
public DateTime DateTimeOfNxtAvailableDataRun()
{
DateTime dateTimeOfNxtAvailableDataRun;
using (SqlCommand cmd = new SqlCommand("DateTimeOfNextAvailableDataRun", this.sqlConnection))
{
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
dateTimeOfNxtAvailableDataRun = (DateTime)cmd.ExecuteScalar();
}
return dateTimeOfNxtAvailableDataRun;
}
任意の受取人ですか?繰り返しますが、関数はSQL Serverのクエリ(最近の投稿を参照)内で動作しますが、現在の呼び出しコードは異なります..
わかりましたが、私はそれなしで走っていました。私は確信しています。深夜の試行錯誤の私の時間ではないかもしれない。 – StatsViaCsh
値を返すことはできませんか?このような単純な関数の出力パラメタよりもはるかに直感的です。 – StatsViaCsh
ストアドプロシージャから非整数値を返すことはできません。しかし、SELECT dbo.NextAvailableDataDownloadDateTime()のようなストアドプロシージャの値を 'SELECT'するだけで、' ExecuteNonQuery() 'の代わりに' cmd.ExecuteScalar() 'を使い、その結果を' DateTime'にキャストすることができます –