![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Закачка данных в FoxPro [D5, dBase, FoxPro]
Sergant © (2002-09-02 12:18:00)В Foxpro-шный dbf-файл закачиваю данные из базы Access. К базе FoxPro подключаюсь через BDE. Закачивается процентов 20 данных, а потом вылетает ошибка:
Project такой-то raised exception class EDBEnfine error with message "Table is full"
Что это за ошибка и как ее избежать?
Mike Kouzmine (2002-09-03 10:13:00) [1]У меня было с парадоксовской то же самое, при перекачке данных. Но там размер файла был более 200 мб (результ). Как раз избавился - удалением всех индексов перед копированием и добавлением оных после копирования. По моему опыту могу сказать, что такая ошибка выходит 1 - при нехватке рабочего места на диске (WorkDir - не того на котором база, а именно где генеряться темповые таблицы, естественно и того, где база), 2 - необъяснимое влияние индексных файлов (может быть их размер или структура), может быть есть и еще что-то, но я этого не отловил.
Sergant (2002-09-03 01:50:00) [2]40-ка гиговый хард, свободно 10 гиг.
Обнаружил такую штуку - если перед закачкой удалить индексный файл, то в базу FoxPro вообще ничего не закачивается и сразу вылетает эта ошибка. При подключении через ADO вылетает с другой ошибкой.
Mike Kouzmine (2002-09-02 18:19:00) [3]Посмотри где у тебя рабочий каталог и сколько на этом диске места. Его должно быть раза в два больше, чем таблица с которой ты работаешь.
Sergant (2002-09-02 17:02:00) [4]T2 - база Access,T1 - база FoxPro
while not T2.Eof do
begin
s := T2.FieldByName("NAME").AsString;
if T1.Locate("FNAME", s, [loPartialKey, LoCaseInsensitive]) = false then
begin
T1.Insert;
s := T2.FieldByName("NAME").AsString;
T1.FieldByName("FNAME").AsString := s;
s := T2.FieldByName("CENA").AsString;
T1.FieldByName("PRICE").Asstring := s;
T1.Post;
end
else
if trim(T1.FieldByName("PRICE").Asstring) <> trim(T2.FieldByName("CENA").AsString) then
begin
T1.Edit;
s := T2.FieldByName("CENA").AsString;
T1.FieldByName("PRICE").Asstring := s;
T1.Post;
end;
T2.Next;
Application.ProcessMessages;
end;
Turalyon (2002-09-02 13:16:00) [5]Покажи код.