Показать сообщение отдельно
Старый 02.06.2003, 08:27   #1  
edd is offline
edd
Участник
 
81 / 10 (1) +
Регистрация: 20.01.2003
? Как ускорить изменение большого количества записей?
Поставили задачу помечать с возможностью фильтрации таких контрагентов, по которым можно провести операцию сопоставления оплаты задолжености.

Сперва решили сделать дисплейный метод на таблицы:
контрагентов видно, но нельзя их отфильтровать.

Тогда добавили поле (типа NoYes) и в формах VendTable/CustTable сделали метод, который обновлял это поле средсвами Аксапты... ПРОБЛЕМА во времени работы.

Решили обмануть систему и переписали метод так:
void Sopostav()
{
Connection C = new Connection();
Statement stmt = c.createStatement();
str ss = " and DataAreaId = \'" + curExt() + "\'";
str SQL0 = "UPDATE VENDTABLE SET Na_Sopostav = 0 where Na_Sopostav = 1" + ss;
str SQL = "UPDATE VENDTABLE SET Na_Sopostav = 1 WHERE accountnum = ANY (" +
"SELECT accountnum FROM VENDTRANSOPEN WHERE amountmst > 0 AND accountnum = ANY (" +
"SELECT accountnum FROM VENDTRANSOPEN WHERE amountmst < 0" + ss + ")" + ss + ")" + ss;
;
stmt.executeUpdate(SQL0);
stmt.executeUpdate(SQL);
}

Но нехочется обманывать систему, что можете посоветовать.