Асинхронное выполнение запросов MS SQL
Добавлено: Ср 02 мар 2016 12:46
Добрый день.
в TUniQuery в SpecificOptions для провайдера SQL Server можно указать параметр NonBlocking. Но почему-то эта опция не работает.
Тестовая ХП в SQL
Код в тестовом приложении:
В модуле UniProvider.pas метод TOptionsList.ImportOptions опция NonBlocking для InternalClass = 'TOLEDBCommand' установлена в False. Далее в DBAccess.pas в методе TCustomDADataSet.OpenCursor поле FNonBlocking имеет значение False.
Как можно заставить запрос выполняться асинхронно, чтоб пользователь мог его прервать в любой момент? Возможно есть какой-то альтернативный способ прерывания выполнения запроса или установлены не все свойства для TUniConnection\TUniQuery?
Окружение: Delphi Seattle 10, MS SQL Server 2008 R2, UniDAC 6.2.9
в TUniQuery в SpecificOptions для провайдера SQL Server можно указать параметр NonBlocking. Но почему-то эта опция не работает.
Тестовая ХП в SQL
Код: Выделить всё
create procedure TestWait
as
begin
WAITFOR DELAY '00:10:01';
SELECT 1
end
Код: Выделить всё
UniQuery1.SpecificOptions.Values['SQL Server.NonBlocking']:= 'True';
UniQuery1.SQL.Text:= 'exec TestWait';
UniQuery1.Open;
Как можно заставить запрос выполняться асинхронно, чтоб пользователь мог его прервать в любой момент? Возможно есть какой-то альтернативный способ прерывания выполнения запроса или установлены не все свойства для TUniConnection\TUniQuery?
Окружение: Delphi Seattle 10, MS SQL Server 2008 R2, UniDAC 6.2.9