Форум: "Базы";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];
ВнизЭкспорт БД Найти похожие ветки
← →
Andrey (2004-08-10 17:34) [0]Здравствуйте. У меня возникла проблема. Я составил код для экспорта данных из одной БД в другую. После выполнения этого кода, при обращении к новой (экспортированной) БД выдается ошибка "Index is out of date", может, кто подскажет, что делать и как с этим бороться?
procedure TForm6.FormActivate(Sender: TObject);
begin
if openDialog1.Execute and fileExists(openDialog1.FileName) then
begin
with Table1 do
begin
Active := False;//Отключаю базу
TableName := OpenDialog1.FileName;// имя новой базы
Active := true;
end;
with Temp1 do
begin
Active := true;
First;
edit;
end;
begin
form6.Cursor:=crAppStart;
label1.Caption:= "Идет удаление сторй базы данных. Это может занять несколько минут.";
label1.Update;
while not form6.temp1.Eof do
begin
form6.temp1.delete;
Form6.update;
end;
end;
label1.Caption:= "Идет загрузка новой базы данных. Это может занять несколько минут.";
label1.Update;
form6.table1.First;
form6.temp1.edit;
form6.temp1.first;
while not form6.table1.Eof do
begin
with form6 do
begin
update;
temp1.edit;
Temp1.FieldByName("vrezo").asstring:=table1.FieldByName("vrezo").asstring;
Temp1.FieldByName("zek").asstring:=table1.FieldByName("zek").asstring;
Temp1.FieldByName("shu").asstring:=table1.FieldByName("shu").asstring;
Temp1.FieldByName("dom").asstring:=table1.FieldByName("dom").asstring;
Temp1.FieldByName("korp").asstring:=table1.FieldByName("korp").asstring;
Temp1.FieldByName("kv").asstring:=table1.FieldByName("kv").asstring;
Temp1.FieldByName("kv_ind").asstring:=table1.FieldByName("kv_ind").asstring;
Temp1.FieldByName("rto").asstring:=table1.FieldByName("rto").asstring;
Temp1.FieldByName("rtd").asstring:=table1.FieldByName("rtd").asstring;
Temp1.FieldByName("prim").asstring:=table1.FieldByName("prim").asstring;
Temp1.FieldByName("rto_vikl").asstring:=table1.FieldByName("rto_vikl").asstring;
Temp1.post;
temp1.Next;
table1.Next;
end;
end;
end;
label1.Caption:="Загрузка БД успешно завершена.";
form6.Cursor:=crDefault;
form6.update;
form6.Close;
end;
← →
Rule © (2004-08-10 17:44) [1]
form6.temp1.edit;
form6.temp1.first;
непонятно зачем
← →
Andrey (2004-08-10 17:46) [2]Согласен, лишнее.
← →
bushmen © (2004-08-10 21:24) [3]>while not form6.table1.Eof do
begin
with form6 do
begin
update;
temp1.edit;
Temp1.FieldByName("vrezo").asstring:=table1.FieldByName("vrezo").asstring;
Temp1.FieldByName("zek").asstring:=table1.FieldByName("zek").asstring;
Temp1.FieldByName("shu").asstring:=table1.FieldByName("shu").asstring;
Temp1.FieldByName("dom").asstring:=table1.FieldByName("dom").asstring;
Temp1.FieldByName("korp").asstring:=table1.FieldByName("korp").asstring;
Temp1.FieldByName("kv").asstring:=table1.FieldByName("kv").asstring;
Temp1.FieldByName("kv_ind").asstring:=table1.FieldByName("kv_ind").asstring;
Temp1.FieldByName("rto").asstring:=table1.FieldByName("rto").asstring;
Temp1.FieldByName("rtd").asstring:=table1.FieldByName("rtd").asstring;
Temp1.FieldByName("prim").asstring:=table1.FieldByName("prim").asstring;
Temp1.FieldByName("rto_vikl").asstring:=table1.FieldByName("rto_vikl").asstring;
Temp1.post;
temp1.Next;
table1.Next;
end;
> end;
Что-то намешано всего. Причем тут temp1.Edit, temp1.Next во время экспорта? Надо просто temp1.Append, а в конце temp1.Post
← →
Andrey (2004-08-13 15:33) [4]Изменил код на следующий, а проблема осталась(т.е. выдается ошибка "Index is out of date").
begin
if openDialog1.Execute and fileExists(openDialog1.FileName) then
begin
istoch.Active := False;
priemnic.Active := False;
istoch.TableName := OpenDialog1.FileName;//Задаю имя новой базы
istoch.Active := True;
if (BatchMove1.Mode = batappend) or (istoch.Exists) then
begin
priemnic.EmptyTable;
BatchMove1.Execute;
istoch.Active :=false;
end;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.03 c