Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

ADOQuery.SQL.Add   Найти похожие ветки 

 
MakNik ©   (2004-03-11 14:48) [0]

Может кто знает в чем причина медленной работы ADOQuery.SQL.Add("...")? Проблема в том, что на некоторых компах эта операция очень тормозит. Как можно обойти этот глюк?


 
Vlad ©   (2004-03-11 14:53) [1]


> MakNik ©   (11.03.04 14:48)  

Уверен что именно эта строчка - причина торможения, а не Open какой нибудь или ExecSQL ?


 
V-A-V ©   (2004-03-11 15:23) [2]

...
 ADOQuery.Close;
 ADOQuery.SQL.Text:= "Select Field1, Field2 From MyTable Where ...";
 ADOQuery.Open;
...

попробу так.


 
VAleksey ©   (2004-03-11 15:28) [3]

Тормозит не эта операция.


 
V-A-V ©   (2004-03-11 15:33) [4]

Да я знаю, что не эта...


 
MakNik ©   (2004-03-11 15:39) [5]

Отрывок кода:
...
While Not ADO.Eof do
begin
 ADOQuery.SQL.Add("  Update ...");
 ADOQuery.SQL.Add("...");
 ...
ADO.Next;
end;
ADOQuery.ExecSQL;


То, что тормозит на Add, это проверено (вставлял логирование)... Интересно, что время выполнения этой операции возрастает от сотых секунда в начале цикла, до 4 секунд после выполнения последней итерации...


 
V-A-V ©   (2004-03-11 15:47) [6]

А ADO это что какая-то таблица?
Eсли это так то это изврат, бегать по таблице и составлять неведая откуда текст запроса для ADOQuery.


 
MakNik ©   (2004-03-11 15:53) [7]


> V-A-V ©  

... меня больше интересует почему Add медленно работает...


 
sniknik ©   (2004-03-11 15:55) [8]

глюк в точках, на точках всегда тормозит (время уходит в точку), чем их больше тем больше времени уходит, избавься от них.

это даже не бред.

бред вот это, добавлять в цикле новые значения к списку и удивляться почему на пустом списке операция выполняется быстрее чем на переполненном. после искать (успешно) крайнего, это у нас компонент ADOQuery почемуто, а не сам любимый который логику извращенную имеет (а та в ответ ...:).


 
V-A-V ©   (2004-03-11 15:58) [9]

sniknik ©

браво...


 
VAleksey ©   (2004-03-11 16:01) [10]


> sniknik ©   (11.03.04 15:55) [8]

5 баллов.
Что сказать - мастер. Очень похоже...


 
V-A-V ©   (2004-03-11 16:05) [11]

Похоже MakNik никогда не выкидывает мусор из "корзины", но онаже не бездонная....


 
MakNik ©   (2004-03-11 16:53) [12]

... да нет, дело какраз в ADOQuery!!! точнее в ADOQuery.SQL (типа TStrings)... если накапливать текст скрипта в отдельной переменной типа TStrings, то все работает быстро, а вот если работать непосредственно с ADOQuery.SQL... , то - тормоз...
(... а "точки" и скрипт я привел как пример того, где тормозит, а не как пример алгоритмизации... )


 
sniknik ©   (2004-03-11 17:19) [13]

есть такая полезная галочка в опциях проекта USE Debug DCUs, поставь ее, и поставь брейпоинт на ADOQuery.SQL.Add("  Update ..."); дальше дело техники по остановке нажимаем F7 и попадаем в..., нет не в метод добавления строки, а в метод GetSQL, потому как SQL property типа TStrings, так все и происходит сначало получение списка после добавили строку, следующее - получение списка (увеличивщегося) добавление строки ....
но переделывать компонент не нужно нужно сменить логику, чтобы не закачивать туда по n-строк (нет n мало, m-строк :), а пользоваться параметрами к примеру и одноразово внесенными запросами. (и не ADOQuery а ADODataSet/ADOCommand)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.042 c
4-1075899409
graY
2004-02-04 15:56
2004.04.11
Как програмно щелкнуть на кнопке типа TToolButoon ведь у ...


1-1082379131
ksa3003
2004-04-19 16:52
2004.04.11
DateTimePicker


3-1081506421
stelius
2004-04-09 14:27
2004.04.11
DBGrid и Ctrl+Del


14-1079265819
Mox Fulder
2004-03-14 15:03
2004.04.11
Кодек


9-1065605196
x22n
2003-10-08 13:26
2004.04.11
Перемещение. Шаги игрока.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский