![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
BDE, TTable, TQuery, TBatchMove, ошибка "Table is full" [D3, MSSQL, Paradox]
Циркуль © (2007-07-17 16:22:00)При создании отчета из базы MSSQL на клиента запросом засасывается довольно большой кусок данных (~300К записей, ~40 полей). Затем результат запроса перекидывается в объект TTable при помощи TBatchMove (зачем - не спрашивайте, так надо :) ).
...
Query.Open;
Table := TTable.Create(nil);
Table.DataBaseName := '...';
Table.TableName := ...\temp_rep.db';
...
BatchMove.Execute; // из Query в Table
...
Так вот, в момент вызова TBatchMove.Execute, вернее при вызове там DbiBatchMove(...) вываливается сообщение "Table is full". В этот момент файл temp_rep.db на диске достигает размера ~260МБ. В чем может быть дело, ведь парадоксовские таблицы могут "расти" до 2Гб, вроде?
Anatoly Podgoretsky (2007-07-17 19:35:00) [1]> Циркуль (17.07.2007 17:32:05) [5]
Более полное использование блоков.
У Парадокса кластерная система базы.
Циркуль (2007-07-17 17:32:00) [2]Собсно, я, вроде, и не просил никого "копипастом заниматься". Мог бы погуглить - погуглил бы. Спросил здесь в расчете на то, что найдется человек, хорошо знакомый с Парадоксом и способный указать в чем проблема.
> Anatoly Podgoretsky © (17.07.07 16:30) [3]
> Не в TTable а в физическую таблицу, которая у тебя неверно
> настроена.
> Решение только одно пересоздавать таблицу с другим размером
> блока и перекачивать в нее старые данные. Ставь максимальный
> размер блока.
Помогло. Прописал в настройках Парадоксовского драйвера Level = 7 (вместо 4) и Block Size = 32768 (вместо 2048). Отработало до конца (правда размер файла на диске почему-то получился 255Мб всего, против 260Мб до этого :) ).
Спасибо.
Johnmen (2007-07-17 16:36:00) [3]
> Доступ есть только сюда и на королевство =\
Никто здесь копипастом заниматься не будет.
Циркуль (2007-07-17 16:30:00) [4]Доступ есть только сюда и на королевство =\
Anatoly Podgoretsky (2007-07-17 16:30:00) [5]Не в TTable а в физическую таблицу, которая у тебя неверно настроена.
Решение только одно пересоздавать таблицу с другим размером блока и перекачивать в нее старые данные. Ставь максимальный размер блока.
Johnmen (2007-07-17 16:27:00) [6]http://www.yandex.ru/yandsearch?text=Table+is+full+paradox