|
|
|
Вопрос по ограничениям Билдера
|
|||
|---|---|---|---|
|
#18+
Для некоторого преобразования "БД Oracle -> текстовый файл" я использую компонент TStringList. Пока (тестовая прогонка ~ на 10% реальных данных) все работает. Возникает вопрос: А что будет при росте объема текстовой информации? Что будет, если, например, число строк в StringList'е превысит 10 тыс, 100 тыс, 1 млн ? И есть ли вообще какие-либо ограничения для этого и других компонентов (типа как для Экселя: не более 64К (65535) строк на одном листе)? К сожалению, в справке Билдера ничего не написано по этому поводу... Может знает кто и поможет "открыть глаза" на "страшную тайну"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 10:30 |
|
||
|
Вопрос по ограничениям Билдера
|
|||
|---|---|---|---|
|
#18+
Рекомендую использовать не VCL, а STL. Конкретно либо std::stringstream, либо один из стандартных контейнеров, например, std::list. Там все стандартно и их поведение описано. Более того, в них ты можешь управлять аллокацией, т.е. например написать аллокатор для винды, чтобы распологать всеми 2 гигами, а не только тем что есть в куче. используя контенйры, например, ты сможешь обезопасить свое приложение от того, что если вдруг тебе потребуется сохранять не строки, а более сложные типы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 10:42 |
|
||
|
Вопрос по ограничениям Билдера
|
|||
|---|---|---|---|
|
#18+
авторДля некоторого преобразования "БД Oracle -> текстовый файл" Если это выгрузка текста в файл то не лучше ли использовать PL/SQL а билдером файл закачивать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 12:27 |
|
||
|
Вопрос по ограничениям Билдера
|
|||
|---|---|---|---|
|
#18+
maxtar авторДля некоторого преобразования "БД Oracle -> текстовый файл" Если это выгрузка текста в файл то не лучше ли использовать PL/SQL а билдером файл закачивать? Может быть и лучше. Но: Пока я еще этому не научился (до этого работал с локальными БД и, в основном, на Фоксе), а сделать это надо "вчера". Кроме того, вопрос представляет для меня еще и теоретический интерес: насколько я могу полагаться на "автоматику" (VCL) и где и когда я словлю баг... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 13:39 |
|
||
|
Вопрос по ограничениям Билдера
|
|||
|---|---|---|---|
|
#18+
А почему тебе надо выводить именно в этот stringlist ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 13:45 |
|
||
|
Вопрос по ограничениям Билдера
|
|||
|---|---|---|---|
|
#18+
dwlА почему тебе надо выводить именно в этот stringlist ? Все очень просто: Лень много программировать . Кроме того, "тяжелое прошлое" (Фоксового программера) дает о себе знать. При преобразовании "Oracle->txt" мне надо вычислять подитоги (при этом подключать локальные dbf'ы), вести подробный лог и много еще чего... В общем, приходится обрабатывать каждую запись выборки... А в StringList'e так все до боли знакомо и понятно (и, что немаловажно, быстро выполняются операции "сохранить файл", "загрузить файл", поиск и т.д.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 14:02 |
|
||
|
Вопрос по ограничениям Билдера
|
|||
|---|---|---|---|
|
#18+
Ужас! 8-) 1) итоги можно сделать в самом запросе к Ораклу. Почему нельзя это использовать? 2) зачем хранить все дело в промежуточной структуре данных, когда можно сразу выводить в файл и сразу считать итоги? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 14:45 |
|
||
|
Вопрос по ограничениям Билдера
|
|||
|---|---|---|---|
|
#18+
Явных ограничений у TStringList не встречал, но на действительно больших объемах он должен тормозить - начинается своп и т.д. Без проблем работал с данными до 10 Мб. Проще работать блоками - задаешь для себя какое-либо ограничение по строкам (например 100000) и сбрасываешь данные в файловый поток (ну его конечно надо создать заранее). StringList->SaveToStream(FileStream); StringList->Clear(); а для FileStream windows сам определит когда его кэшировать, а когда сбрасывать на диск. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 14:48 |
|
||
|
Вопрос по ограничениям Билдера
|
|||
|---|---|---|---|
|
#18+
dwlУжас! 8-) 1) итоги можно сделать в самом запросе к Ораклу. Почему нельзя это использовать?Потому что надо выдать информацию: сколько реально записей (строк) выдано в файл, а не просто sum()... dwl 2) зачем хранить все дело в промежуточной структуре данных, когда можно сразу выводить в файл и сразу считать итоги? Делал я и это (правда в другой программе)... Но говорю же: лень программировать, решил облегчить себе жизнь ТО ALL: Не придирайтесь к моей реализации конвертации "Oracle->txt" (сколько людей - столько и мнений), а отвечайте по существу вопроса: какие ограничения, количественные показатели ограничения и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2004, 15:05 |
|
||
|
Вопрос по ограничениям Билдера
|
|||
|---|---|---|---|
|
#18+
согласен с _Sania . у меня до сих пор тоже проблем с этим не было .. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2004, 10:56 |
|
||
|
Вопрос по ограничениям Билдера
|
|||
|---|---|---|---|
|
#18+
Станислав C.... "тяжелое прошлое" (Фоксового программера) дает о себе знать. ... Странно, что это "тяжелое прошлое" не натолкнуло на мысль воспользоваться тем же Visual FoxPro для решения задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 17:08 |
|
||
|
Вопрос по ограничениям Билдера
|
|||
|---|---|---|---|
|
#18+
Reznichenko Y.V. Станислав C.... "тяжелое прошлое" (Фоксового программера) дает о себе знать. ... Странно, что это "тяжелое прошлое" не натолкнуло на мысль воспользоваться тем же Visual FoxPro для решения задачи. Это уже -OFF-, но на то есть две причины: - хочу сам уйти от Фокса (надоело уже за 5 лет, хочется чего-то "светлого"); - корпоративный стандарт (т.е. ВСЕ пишут на связке С++ (VC++ или C++Builder) - Oracle для обеспечения преемственности в случае непредвиденных обстоятельств, как то увольнение автора программы, переход его в другой отдел, болезнь и т.д.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2004, 07:06 |
|
||
|
Вопрос по ограничениям Билдера
|
|||
|---|---|---|---|
|
#18+
Станислав C.Это уже -OFF-, но на то есть две причины: - хочу сам уйти от Фокса (надоело уже за 5 лет, хочется чего-то "светлого"); - корпоративный стандарт (т.е. ВСЕ пишут на связке С++ (VC++ или C++Builder) - Oracle для обеспечения преемственности в случае непредвиденных обстоятельств, как то увольнение автора программы, переход его в другой отдел, болезнь и т.д.) Что тут скажешь ? Добро пожаловать из "тяжелого прошлого" в "туманное будущее"! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2004, 10:51 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=421&tid=2033951]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
27ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 333ms |

| 0 / 0 |
