У меня проблема с выполнением Sql, который на самом деле является простым вызовом хранимой процедуры на SqlServer.
Рассмотрим ниже хранимую процедуру Sql:
CREATE PROCEDURE InfiniteLoop
AS
BEGIN
DECLARE @ixi NUMERIC(38) = 0
DECLARE @i NUMERIC(38) = 0
WHILE 1 = 1
BEGIN
SET @i = @i + 1
SET @ixi = @ixi * @i
PRINT N'some text'
END
END;
Теперь я вызываю эту процедуру из C# следующим образом:
public void CallProcedure()
{
SqlCommand cmd = this._connection.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
command.CommandText = 'InfiniteLoop';
//Line below throws OutOfMemoryException
cmd.ExecuteNonQuery();
cmd.Dispose();
}
Память начинает расти очень быстро. Через несколько секунд выдается исключение. Обычно весь этот код использует разделы «try/catch» и «using», но я упростил этот фрагмент, чтобы показать, что проблема возникает из библиотеки SqlClient, а не из моего кода напрямую.
ExecuteNonQuery
. Но какой у тебя вопрос? - person lc.   schedule 19.03.2013