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

Вниз

Проблемы со вставкой записей в таблицу DBase   Найти похожие ветки 

 
Алексей Петухов   (2003-08-04 08:18) [0]

Здравствуйте уважаемые мастера.
Проблемы со вставкой записей в таблицу DBase.
Вот при таком раскладе вроде-бы работает, но постпенно замедляется, причем сильно (и это без индексов).
А если цикл Open Close убрать то вставляет только около 130 записей, потом обшиба.

for i:=1000 to 501000 do
begin
if (int(i/100)=i/100) then
begin
qrTov.Close;
qrTov.Open;
end;
qrTov.InsertRecord([i,"name"+inttostr(501001-i),0,0,0,6]);
( 501001-i)
Здравствуйте уважаемые мастера.
Проблемы со вставкой записей в таблицу DBase.
Вот при таком раскладе вроде-бы работает, но постпенно замедляется, причем сильно (и это без индексов).
А если цикл Open Close убрать то вставляет только около 130 записей, потом обшиба.

for i:=1000 to 501000 do
begin
if (int(i/100)=i/100) then
begin
qrTov.Close;
qrTov.Open;
end;
qrTov.InsertRecord([i,"name"+inttostr(501001-i),0,0,0,6]);
Label1.Caption:=inttostr(501001-i);
qrTov.ApplyUpdates;
qrTov.CommitUpdates;
ProgressBar1.Position:=i;
application.ProcessMessages;
end;


Подскажите, как правильно работать с таблицами DBase через BDE с помощью TQuery.
И еще я таблицы создаю используя TQuery, и они получаются типа Visual bDase 7. Как с этим бороться?

Заранее благодарен.


 
Mike1 Kouzmine1   (2003-08-04 09:02) [1]

А что это значит?


 
stud   (2003-08-04 09:08) [2]

судя по всему у тебя набор grTov находится в режиме кэшированных изменений, тогда логично вынести applyupdates и commitUpdates за основной цикл. и наверное лучше использовать компонент updatesql


 
Алексей Петухов   (2003-08-04 09:38) [3]

Я использую updatesql.
grTov находится в режиме кэширования изменений.
Если я вынесу applyupdates и commitUpdates за основной цикл, то после добавлений 500 000 записей я окончания applyupdates может неуложиться в 8-ми часовой рабочий день :-).


 
Sergey13   (2003-08-04 09:56) [4]

2Алексей Петухов (04.08.03 08:18)
Тестовые данные что ли забиваешь? Другого объяснения для

>qrTov.InsertRecord([i,"name"+inttostr(501001-i),0,0,0,6]);

я не нахожу. Может тогда подождать просто, если все таки работает.

Анекдот в тему.
-Ну и что что моя программа работает на полчаса дольше? Я просто запущу ее на полчаса раньше. И все.


 
Алексей Петухов   (2003-08-04 10:03) [5]

Тот код, который я предложил в качестве иллюстрирующего примера. А приводить здесь код, не имеющий отношения к сути вопроса - не вижу смысла - только дело усложнять. Смылсл действий сводится к примеру. Можно воспринимать его как тестово-отладочный.

А на счет анекдота - хороший был шутник этот Энштейн.


 
stud   (2003-08-04 10:09) [6]

в твоем коде ты коммитиш каждую запись. какой смысл переводить набор в кэшированные изменения?
тогда используй обычный

qrTov.close;
qrTov.sql.text:="insert into .... values...";
qrTov.execsql;



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

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

Наверх





Память: 0.46 MB
Время: 0.005 c
6-92159
Patriot
2003-06-19 03:03
2003.08.28
WebBrowser и RichEdit


3-92047
nokk9
2003-08-03 14:58
2003.08.28
суммы в DBGrid


14-92229
Proger_XP
2003-08-09 10:46
2003.08.28
Программы


3-92019
Falendysh
2003-08-05 00:16
2003.08.28
QReport компонента


9-91972
Призрак_Коммунизма
2003-02-24 13:25
2003.08.28
Команда по созданию игры. Совет.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский