Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
15-1193648707
vasIZmax
2007-10-29 12:05
2007.12.02
Наблюдение за гуглом (около «оффтоп»)


15-1194098631
Vendict
2007-11-03 17:03
2007.12.02
h -> pas


15-1192084197
de.
2007-10-11 10:29
2007.12.02
to Delphi 7


2-1194539086
Kick
2007-11-08 19:24
2007.12.02
ClientSocket, ServerSocket


2-1194634607
Dmitry_177
2007-11-09 21:56
2007.12.02
отловить клавишу Delete