Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.12;
Скачать: CL | DM;

Вниз

Экспорт БД   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
1-1093507003
an-na2002
2004-08-26 11:56
2004.09.12
Изменение имени файла


1-1093770102
Луарвик
2004-08-29 13:01
2004.09.12
StringGrid: удаление строки


3-1092832268
Slash
2004-08-18 16:31
2004.09.12
Путь к базе данных


3-1092375802
REP
2004-08-13 09:43
2004.09.12
Не удается записать в TBlobField произвольный файл


3-1092891993
ser_sun
2004-08-19 09:06
2004.09.12
программа для печать товарно-транспортных накладных,