Текущий архив: 2007.12.02;
Скачать: CL | DM;
Вниз
Оптимизировать перебор записей в таблице Найти похожие ветки
← →
sniknik © (2007-07-13 17:30) [40]> Так вроде все уже обсудили. Сказали что нужно сделать...
но еще никто не дал готового кода... т.что жди третий круг. ;о)
← →
WhiteCat (2007-07-13 17:30) [41]
> Так вроде все уже обсудили. Сказали что нужно сделать...
Что нужно сделать??????? Скажите мне.
Поменять СУБД?
← →
Stanislav © (2007-07-13 17:36) [42]Сначала заменить AdoTable на AdoDataSet
Потом написать SQL Select... Where ... like "%москва%"
Потом открыть и вцикле сделать replace
Можно для ускорения использовать LocType:=BathOptimistic
← →
Jan1 (2007-07-13 17:38) [43]
> Что нужно сделать??????? Скажите мне.
единоразовая задача? или это действие в проге? если единовразово, то создай в Аксесе такой запрос [8] и там же его выполни...
← →
sniknik © (2007-07-13 17:39) [44]> Согласитесь, это же не повод всем пользователям Access, InterBase, Paradox, MySQL перейти в срочном порядке на MSSQL.
моим и не надо, они и так на MSSQL практически половно...
а для других баз могут другие, отличные от этого решения. для того же access 1 запрос на выборку нужных, и цикл по нему с вызовом команды updete в adocommsnd (обязательно параметризированным).
хотя тебе это не пойдет т.к. у тебя почемуто вопреки всем
> ... LIKE "%Москва%"
> ... LIKE "%москва%" дают разные результаты.
т.е. ничего не получится пока не добьешся чтобы было как у всех одинаковые.
← →
sniknik © (2007-07-13 17:41) [45]> Можно для ускорения использовать LocType:=BathOptimistic
не надо. это не для этого и скорости не добавит.
← →
WhiteCat (2007-07-13 17:42) [46]to Stanislav
Спасибо, попробую.
← →
Stanislav © (2007-07-16 14:25) [47]sniknik © (13.07.07 17:41) [45]
Почему не добавит?
он же будет в цикле бежать по набору данных и заменять значения, при этом каждая строка будет фиксироваться в базе, а если установить BathOptimistic, то сохранение в базу пройдет в конце цикла 1 раз.
← →
sniknik © (2007-07-16 14:43) [48]> Почему не добавит?
> он же будет в цикле бежать по набору данных и заменять значения, при этом каждая строка будет фиксироваться в базе, а если установить BathOptimistic,
> то сохранение в базу пройдет в конце цикла 1 раз.
структура рекордсета с BathOptimistic более громозка, там еще добавляется кэширование(под старые значения) - деление значений на новые, старые. а потом при апдейте будет второй цикл по тому же рекордсету с условием если запись изменена то делается тоже самое - "фиксирование в базе". причем не одной командой (в профайлере можно посмотреть). т.е. все тоже самое, только с большим обьемом захваченной под доп.поля памяти, с дополнительными проверками, и "разбитием" одного цикла на 2.
думаешь все эти дополнительные действия сэкономят время? я нет. (хотя, проверь... может я и ошибаюсь)
← →
sniknik © (2007-07-16 14:49) [49]вообще если делать "ускорение" то я бы сам составил команду апдейта, и выполнял бы ее в асинхронном ADOCommand, тогда бы сэкономилось немного времени, не ожидалось бы завершения команды для перехода на следующую запись основного рекордсета. может быть бы и получилось... (проверить надо (возможно уже в оригинальном так и сделано тогда ;())
Страницы: 1 2 вся ветка
Текущий архив: 2007.12.02;
Скачать: CL | DM;
Память: 0.55 MB
Время: 0.033 c