Главная страница
    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.039 c
14-1093326200
Kerk
2004-08-24 09:43
2004.09.12
Безграмотные программисты Microsoft....


1-1093573791
Ozone
2004-08-27 06:29
2004.09.12
MDI приложение


14-1093333816
blackman
2004-08-24 11:50
2004.09.12
Не знаю, что с сайтом. Кто видит напишите


14-1092990043
guest_Dmitry
2004-08-20 12:20
2004.09.12
Как зарегистрировать класс ActiveX?


3-1092345624
sashapont
2004-08-13 01:20
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский