Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.035 c
4-1090911448
Lin7
2004-07-27 10:57
2004.09.12
Как подменить обработчик исключений?


14-1093326200
Kerk
2004-08-24 09:43
2004.09.12
Безграмотные программисты Microsoft....


4-1091280137
Sulimxar
2004-07-31 17:22
2004.09.12
Приоритеты


9-1084901352
microland
2004-05-18 21:29
2004.09.12
Построение морского боя


14-1093366008
ИМХО
2004-08-24 20:46
2004.09.12
Test





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