Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

100% загрузка процессора

438
11 мая 2005 года
nice
103 / / 13.10.2003
Есть такая программа.
смысл
есть две базы данных формата Dbase там список людей и там список с теми же людьми на данных людей разные есть ключевые поля в базах по которым определяю ледей когда в базе х нахожу человека то вставляю в базу у данные из базы х.
Почему такой процесс делает загрузку процессора на 100 процентов.
302
11 мая 2005 года
Sagittarius
648 / / 12.04.2003
Цитата:
Originally posted by nice
Есть такая программа.
смысл
есть две базы данных формата Dbase там список людей и там список с теми же людьми на данных людей разные есть ключевые поля в базах по которым определяю ледей когда в базе х нахожу человека то вставляю в базу у данные из базы х.
Почему такой процесс делает загрузку процессора на 100 процентов.


Наверное, потому что синтаксис хромает. :)

А что такого, в том, что программа загрузила процессор на 100%? Скорее всего алгоритм чтения/записи/поиска не оптимизирован.

Кстати, если навести мышку на заголовок окна, зажать левую кнопку и начать шустро-шустро шпынять его во все стороны, то тоже можно процессор на 100% загрузить, правда кратковременно. :)

438
11 мая 2005 года
nice
103 / / 13.10.2003
Цитата:
Originally posted by Sagittarius
Наверное, потому что синтаксис хромает. :)



Дело в том что проверка может продолжаться в течении 40 минут и в течении всего этого времени на компе ничего нельзя делать.

и вообще вот два простых кода смысл один и тотже просто на разных языках а скорости выполнения очень сильно отличаются

Delphi
for i:=1 to 10000 do
begin
ADOTable2.Edit;
ADOTable2['Nom_polis']:='Г02/0123526';
ADOTable2['Birthday']:='29.09.1976';
ADOTable2.Post;
ADOTable2.Next;
end;

VBA
for i=1 to 10000
rst.Edit
rst.Fields("Nom_polis") = "Г02/0123526"
rst.Fields("Birthday") = "29.09.1976"
rst.Update
rst.MoveNext
next

Вот два разных языка принцип синтаксиса одинаковый а время затрачено будет на VBA где то 1,30 минут а в Delphi минут 40 а может и час и при этом еще и у компа загрузка процессора на 100%. Вот из за этого я и задал вопрос возможно что то я не то сделал. Помогите.

10
11 мая 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by nice
а в Delphi минут 40 а может и час и при этом еще и у компа загрузка процессора на 100%


Не выставил верно параметры ADOTable, отвечающие за кэширование и одно- или двухпроходность.

Не вызвал ADOTable1.DisableControls вначале и EnableControls в конце обработки, наконец!

438
12 мая 2005 года
nice
103 / / 13.10.2003
Цитата:
Originally posted by Freeman
Не выставил верно параметры ADOTable, отвечающие за кэширование и одно- или двухпроходность.



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

Цитата:
Originally posted by Freeman
Не вызвал ADOTable1.DisableControls вначале и EnableControls в конце обработки, наконец!



ADOTable1.DisableControls - что это такое и для чего она нужна.
Благодарен за уже данный ответ потомучто этот вопрос меня долго уже месяца 4 мучил.

302
12 мая 2005 года
Sagittarius
648 / / 12.04.2003
Цитата:
Originally posted by nice
for i:=1 to 10000 do
begin
ADOTable2.Edit;
ADOTable2['Nom_polis']:='Г02/0123526';
ADOTable2['Birthday']:='29.09.1976';
ADOTable2.Post;
ADOTable2.Next;
end;


Кстати, если для набора записей надо поставить одинаковые значения в полях, почему бы не использовать UPDATE?
Например, UPDATE Table1 SET NomPolis='Г02/0123526',Birthday='29.09.1976' WHERE условие

10
12 мая 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Sagittarius
UPDATE Table1 SET NomPolis='Г02/0123526',Birthday='29.09.1976' WHERE условие


Это радикально и правильнее всего. Правда, с точки зрения обучения, использовать DisableControls ты так и не научишься. Читай справку по TDataSet.

438
12 мая 2005 года
nice
103 / / 13.10.2003
Цитата:
Originally posted by Freeman
Это радикально и правильнее всего. Правда, с точки зрения обучения, использовать DisableControls ты так и не научишься. Читай справку по TDataSet.



Что вы все принимаете в серьез это я для примера написал одни и теже данные что бы вам было понятно что делает. и даже если одни и теже данные записывать они все равно будут очень долго записываться. Извините но "Читай справку по TDataSet." это не ответ на заданный вопрос если знаете то можно подсказать расказать а в конце ответа допустим дописать более подробную информацию найдешь там то тамто. Такие советы я могу и сам довать.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог