Форум: "Базы";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
Вниз1 или 2 млн. записей Найти похожие ветки
← →
Mister (2004-07-16 22:32) [0]Здраствуйте! хотелось бы знать, можно ли как-нибудь дописать в таблицу с 1,5 млн записей не дождавшись загрузки ее допустим в ADOTable, а то очень долго, к тому же сетка еще время отнимает... база Access 97
← →
Anatoly Podgoretsky © (2004-07-16 22:42) [1]Вечером
← →
Sergey Masloff (2004-07-16 23:50) [2]Anatoly Podgoretsky © (16.07.04 22:42) [1]
>Вечером
Да она (ADOTable) еще в обед скажет что память кончилась ;-)
← →
Vlad © (2004-07-17 00:21) [3]
> Mister (16.07.04 22:32)
Можно.
1)На то существует компонент ADOQuery, а так же SQL запросы insert ...
2) Существует понятие серверный курсор, при котором в датасет подгружаются не все данные сразу.
← →
Mister (2004-07-18 20:09) [4]Vlad, спасибо!
← →
Mister (2004-07-18 20:09) [5]Удалено модератором
← →
злючка (2004-07-19 00:20) [6]Удалено модератором
Примечание: Личная переписка
← →
Жека © (2004-08-03 23:55) [7]У меня тоже возник вопрос. Есть база из 3900000 записей и мне нужно ее перегнать в формат для другой базы, но когда я начинаю использовать кверю, то память все равно кончается. Вот как я это делаю:
AssignFile(f, "D:\Phones 2002\2.txt");
rewrite(f);
j:=0;g:=2;k:=0;
ADOQuery1.Active:=true;
i:=ADOQuery1.RecordCount;
//memo1.Text:=inttostr(i);
p:=0;
while not ADOQuery1.Eof do
begin
if j=50001 then Begin
j:=0;
g:=g+1;
s:="D:\Phones 2002\"+inttostr(g)+".txt";
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:=
"Select * from base where id BETWEEN "+inttostr(p+1)+
" and "+inttostr(p+50050);
ADOQuery1.Open;
Closefile(f);
AssignFile(f,s);
rewrite(f);
end;
p:=p+1;
try
s1:=" %#%Phone$"+ADOQuery1.Fields[0].Value+"$";
writeln(f,s1);
except
writeln(f," %#%Phone$ $");
end;
try
s1:="no_type$"+inttostr(ADOQuery1.Fields[1].Value)+"$";
writeln(f,s1);
except
writeln(f,"no_type$ $");
end;
try
s1:="Abonent$"+ADOQuery1.Fields[2].Value+"$";
writeln(f,s1);
except
writeln(f,"Abonent$ $");
end;
try
s1:="Address$"+ADOQuery1.Fields[3].Value+"$";
writeln(f,s1);
except
writeln(f,"Address$ $");
end;
try
s1:="Comments$"+ADOQuery1.Fields[4].Value+"$";
writeln(f,s1);
except
writeln(f,"Comments$ $");
end;
j:=j+1;k:=k+1;
ProgressBar1.Position := 100 * k div i;
ADOQuery1.Next;
end;
try Closefile(f) except end;
end;
Подскажите пожалуйта, как мне освобождать память при использовании кверя.
← →
Johnmen © (2004-08-04 00:00) [8]Жека, ты хорошо понимаешь, ЧТО делает и КАК приведенный тобой кусок кода ?
← →
Жека © (2004-08-04 00:07) [9]
Жека, ты хорошо понимаешь, ЧТО делает и КАК приведенный тобой кусок кода ?
Честно говоря не особо, но он работает и даже записывает данные из базы в файл (сейчас я работаю с базой менее 200000 записей)
← →
Johnmen © (2004-08-04 00:14) [10]Понятно...
см. Vlad © (17.07.04 00:21) [3]
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.039 c