Главная страница
    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.05 c
8-1088049135
Ozone
2004-06-24 07:52
2004.09.12
WebCAM


1-1093417806
Рамиль
2004-08-25 11:10
2004.09.12
Перехват максимизации окна


1-1093240138
vlad_ri
2004-08-23 09:48
2004.09.12
Move() и Variant


1-1093216809
массив
2004-08-23 03:20
2004.09.12
Какой самый корркетный способ добавления шрифта в систему ?


14-1093464569
NailMan
2004-08-26 00:09
2004.09.12
Генератор имен





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