Форум: "Базы";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
ВнизПерекачка данных с индикатором прогресса Найти похожие ветки
← →
Fresh (2004-07-23 15:22) [0]Здравствуйте, мастера.
Помогите, пожалуйста, разобраться. Надо создать программульку для перекачки большой БД с локального .mdb файла в Oracle. Но ввиду того, что БД большого объема, необходимо использовать индикатор прогресса на форме.
При этом. В таблице нет ключа и уникального поля. Предварительное формирование доп. столбца с номерами очень трудоемко... Надо как-то выбирать данные пот несколько записей и кидать в Oracle, изменяя нидикатор прогресса..
Попробовал использовать асинхроннуй работу ADODataSet с использованием провайдера jet - асинхронной работы толком не получилось.
Подскажите, пожалуйста, хотя бы общие положения, которых мне надо придерживаться: рыть SQL или лезть в OLE и т.п. Или, может быть есть какой-то вообще более простой способ?
← →
bushmen © (2004-07-23 17:27) [1]> есть какой-то вообще более простой способ
Подцепляешься к mdb через ADO. Делаешь вначала запрос на количество записей в этой базе. Это у тебя 100%. Потом, делаешь полную выборку из базы. Открываешь другое соединение с Oracle и в цикле переливаешь. Но раз база большая, то будет тормозить. Но ты же просил ПРОСТОЙ путь :)))
← →
Koala (2004-07-23 18:46) [2]делал для BDE но попробуй переделать под себя...
Это будет работать если в таблице записей < 32767
tbl.DisableControls;
ProgressBar.Max := 100;
Percent.Caption := "0%";
try
while not tbl.Eof do
begin
здесь прописываешь перекачку данных
tbl2.FieldByName("...").AsString := tblPole.AsString;
Application.ProcessMessages;
ProgressBar.Position := tbl.RecNo;
Percent.Caption := IntToStr(Round(ProgressBar.Position /
ProgressBar.Max * 100)) + " %";
if WorkBreak then goto 10;
tbl.Next;
end;
10:
tbl.EnableControls;
ProgressBar.Position := 0;
Percent.Caption := "0%";
← →
Koala (2004-07-23 18:52) [3]PS
var WorkBreak : Boolean;
*{в начале процедуры }*
WorkBreak = false;
если нужно остановить процедуру перекачки
на кнопку вешаешь WorkBreak := true;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.042 c