Всем доброго времени суток!
Задача: удалить большое количество записей из таблицы. Т.к. while select и delete_from сильно тормозили, решил использовать CCADOConnection:
X++:
CCADOConnection connection;
CCADOCommand command;
str sql;
;
command = new CCADOCommand();
connection = new CCADOConnection();
connection.connectionString(new SqlSystem().loginConnectString());
connection.open();
command.activeConnection(connection);
command.commandType(1);
sql = strfmt("delete from SALESTABLE_TONTRA40478 where SALESTABLE_TONTRA40478.month = '%1'", date2str(01\03\2010, 321, 2, 3, 2, 3, 4));
command.commandText(sql);
command.execute();
connection.close();
Проблема в том, что при небольшом кол-ве строк в таблице (порядка 20000) все прекрасно работает, но если записей много (около 600000), падает со след. ошибкой:
Метод "execute" в COM-объекте класса "ADODB.Command" возвратил код ошибки 0x80040E31 (<неизвестно>), который означает: [Microsoft][SQL Native Client]Query timeout expired.
Можно ли это как-то победить?
p.s. База - SQL Server 2005, и в 4.0 и в 2009 результат один и тот же