![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с импортом большого числа записей
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 штук.
Если эти триста по одной импортировать то все нормально.