Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с импортом большого числа записей


RDA ©   (2003-07-29 17:22:00) 

Необходимо перенести записи из одной таблицы в другую. Принимающая таблица TDBISAM (Urd) отдающая TDbf (ImpUrd). При переносе по одной - все нормально. Пытаюсь перенести сразу все записи виснет без всяких сообщений.
Переношу самым простым способом:

function TfmImpDos.UrdImpAll:Integer;
begin
Result:=0;
with DM do
while not ImpUrd.Eof do
if ImpUrdRRAX.AsString=PrdRAXP.AsString then
begin
Urd.Append;//замена на Insert не проходит.
UrdNOMER.AsInteger:=GetUrdMaxNumber; //не здесь - пробовал отключать
UrdDATA.AsDateTime:=ImpUrdDATER.AsDateTime;
UrdD_DOC.AsDateTime:=ImpUrdDATEDOC.AsDateTime;
UrdF_DOC.AsDateTime:=ImpUrdDATETERM.AsDateTime;
UrdN_DOC.AsString:=ImpUrdNDOC.AsString;
UrdKM.AsString:=ImpUrdSK.AsString;
UrdSUMA.AsFloat:=ImpUrdS.AsFloat;
UrdPSUMA.AsFloat:=ImpUrdSO.AsFloat;
UrdKEKV.AsString:=ImpUrdKEKV.AsString;
UrdEDRO.AsString:=ImpUrdEDRPOUR.AsString;
UrdNAZVO.AsString:=Zamena(DosToWin(ImpUrdPOLUT.AsString)); // не здесь - пробовал отключать
Urd.Post;
ImpUrd.Next;
Result:=Result+1;
end;
end;


RDA   (2003-07-30 08:05:00) [1]

>> Dred2k
Спасибо.


Dred2k   (2003-07-29 19:40:00) [2]

У тебя > ImpUrd.Next;только по условию выполняется. На первой же записи, не удовлетворяющей условию, прога войдет в бесконечный цикл while. Вынеси переход за if и будь внимательнее.


RDA   (2003-07-29 17:24:00) [3]

Забыл добавить - большого количества это максимум 300 штук.
Если эти триста по одной импортировать то все нормально.


Наверх

Титульная страница Поиск, карта сайта Написать письмо