Технология dbExpress не позволяет реализовать для датасетов использование курсоров серверного типа в SQL Server. Поэтому dbExpress-датасеты используют курсоры клиентского типа, и мы не можем повлиять на это.
Указанная вами ошибка возникает потому, что стандартный OLEDB provider и SQL Native Client не разрешают изменять данные в таблице до тех пор, пока на стороне сервера остаются невычитанные данные этой таблицы, и мы также не можем повлиять на это поведение.
Для решения проблемы попробуйте использовать Direct режим нашего драйвера. Например, это можно сделать в ран-тайм:
Код: Выделить всё
// SQLConnection1.DriverName := 'DevartSQLServer';
// SQLConnection1.GetDriverFunc := 'getSQLDriverSQLServer';
// SQLConnection1.LibraryName := 'dbexpsda40.dll';
// SQLConnection1.VendorLib := 'sqlncli11';
SQLConnection1.DriverName := 'DevartSQLServerDirect';
SQLConnection1.GetDriverFunc := 'getSQLDriverSQLServerDirect';