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

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

Не могу произвести выгрузку в Excel большое количество записей. [D6, FireBird]


Страницы:   1 2

galexis ©   (2004-12-16 09:24:00) 

Выгружаю данные из базы в файл Excel. Небольшое количество записей выгружается нормально (до 600 записей). Большее - пишет не хватает памяти. Иногда пишет не может записать файл ib_sort в winnt\temp. Заподозрил, что мало отводится места под сортировку. Изменил параметр в ibconfig. Сделал 1000000000 (~1Гб) tmpdirectory. Теперь явно пишет, что нет места для файлов ib_sort. Что не так?


Александр Иванов   (2004-12-16 11:50:00) [1]

sniknik ©   (16.12.04 11:45) [20]

Да, с гигабайтами я переборщил :)


sniknik   (2004-12-16 11:45:00) [2]

Александр Иванов ©   (16.12.04 11:21) [15]
пез пояснений каждый понимает по своему. и потом ты лихо мегабайтам вес повысил... ;о)) а без этого и догадки будут неверными.


Danilka   (2004-12-16 11:36:00) [3]

[6] Александр Иванов ©   (16.12.04 10:43)
Круто! Конечно, извратов всяких видел, но, надеюсь, в реальных задачах (да еще и выгрузка в эксель в таком виде) такое не встречается. :))

[17] galexis ©   (16.12.04 11:24)
Вобщем, почему проблема написано в [13] а как ее решить в [16]. :))


}|{yk   (2004-12-16 11:31:00) [4]

Так должно же написать, что в принтере нет бумаги ;)


galexis   (2004-12-16 11:24:00) [5]

Вы правы. Места на диске не хватило. Все 15Гб занял!


Johnmen   (2004-12-16 11:23:00) [6]

>galexis ©  

Видимо, сортируемые записи очень велики.
Надо оптимизировать запросы.
Написать ХП с реализацией получения конечных 5т.записей.


Александр Иванов   (2004-12-16 11:21:00) [7]

sniknik ©   (16.12.04 10:57) [9]

Это не наивное представление. Это просто доказательство, что даже для короткой строки мы получим довольно большие объемы информации.


sniknik   (2004-12-16 11:20:00) [8]

http://cs.ifmo.ru/education/documentation/sql_kg/3-2-1.shtml


sniknik   (2004-12-16 11:18:00) [9]

> Запрос очень большой, из 42 таблиц.
"приджойненные" друг к другу? тогда да может быть, при джойне строится декартово произведение таблиц (каждое на каждое), что в результате от 42 таблиц получится... подумать страшно ;о)).


galexis   (2004-12-16 11:12:00) [10]

Увеличил tmp_directory на одном диске до 2Гб, на втором до 1Гб. Создаются файлы ib_sort до 1,7Гб. Это ORDER BY так работает?


galexis   (2004-12-16 11:09:00) [11]


> Johnmen

Компонент IBQuery. Запрос очень большой, из 42 таблиц. Возвращает около 40 тыс записей. По данным из этих записей строится другой, еще более больший запрос. Он возвращает одну запись и эта запись выгружается в excel. В итоге должно выгрузится в excel около 5 тыс записей.


Johnmen   (2004-12-16 10:59:00) [12]

>galexis ©

Покажи запрос. И какой компонент-держатель НД используется.


sniknik   (2004-12-16 10:57:00) [13]

>> 256*600*256 = 37.5 Gb

> 256 это что?
похоже 600 это записей,
первая(или вторая) 256 это количество допустимых полей в записи,
и вторая (или первая) 256 это наивное представление, что ексель не позволяет мемо полей а только короткие строки. ;о)) (максимальные значения)


galexis   (2004-12-16 10:49:00) [14]


> Александр Иванов ©


> 256*600*256 = 37.5 Gb

256 это что?


galexis   (2004-12-16 10:47:00) [15]


> sniknik ©

На самом деле Excel тут  не причем, до него еще не доходит дело. Строк там должно выгрузиться около 5тыс.


> Danilka ©

Гиг отведен для сортировки на сервере. А 600 записей весят около 500Кб. Выгрузка построчно идет. Строка - запись. после выгрузки 600 записей выскакивает ошибка - не хватает места для сортировки.


Александр Иванов   (2004-12-16 10:43:00) [16]

Danilka ©   (16.12.04 10:40) [4]

256*600*256 = 37.5 Gb
:).


Соловьев   (2004-12-16 10:42:00) [17]

Интересно увидеть код выгрузки
И еще, у IBExpert можно данные выкинуть в Ексель, попробуй - выкинет?


Danilka   (2004-12-16 10:40:00) [18]

[3] sniknik ©   (16.12.04 10:39)
Дык, он говорит - больше 600 записей. Что-то тут не так. Ну не может, по моему скромному мнению, 601 запись весить гиг. :))


sniknik   (2004-12-16 10:39:00) [19]

а ты что весь гиг в один экселевский файл заливаеш? а ограничение на запись не более 65535 строк в листе не нарушаеш?
или это не тот "файл Excel" что из мсофиса?


galexis   (2004-12-16 10:33:00) [20]


> Johnmen ©

Прочитал, спасибо. Ошибка действительно такая была до изменения ibconfig. Но ответа так и не нашел. Свободного места на диске 15 Гб. Пробовал и два места указывать. Та же беда. Может tmp_directory ограничен максимальным размером и не может быть 1Гб?


Страницы:   1 2

Наверх

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