parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Re: Попробовал.

Bit 20.06.2005 16:58

Вот так стало обрабатывать больше строк и соответственно сработало без ошибок на текущей задаче (каталог 17000 строк):
^memory:compact[]
^t.menu{
^void:sql{delete from cd where barcode="$t.[$bcc]" and supply="$ff.userid"}
}

$sql_fields[^tc.menu{^if($ff.[s^tc.line[]] ne none){$ff.[s^tc.line[]],}}supply,update_d]

^memory:compact[]
^t.menu{
^void:sql{insert into cd ($sql_fields) values (^tc.menu{^if($ff.[s^tc.line[]] ne none){"$t.[$tc.column]",}}"$ff.userid","$dnsql")}
}
Но есть вопросы:
1. "заменить на один delete с WHERE barcode IN (^t.menu{$t.[$bcc]}[,])" - действительно можно 17000 значений через запятую перечислить в sql-запросе, и это будет работать лучше чем через меню? А если 50 000, 100 000 ?

2. ^memory.compact[] очищает память от неиспользуемых переменных. Тогда почему нужно его ставить внутри цикла ^t.menu{}, если там все переменные используются, и освобождать память не от чего ?