Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по компонентам для Delphi, C++ Builder

Автор: Steepe_Hare
Дата сообщения: 19.09.2005 18:09
Господа, какие компоненты для Delphi работают с Berkeley DB???
Автор: LadyOfWood
Дата сообщения: 21.09.2005 22:12
RealThinClient вроде уже open-source начиная с 1.6
Автор: Raven2002
Дата сообщения: 22.09.2005 13:15
Увы, как я понял - нет: на их сайте _http://www.deltasoft.hr/rtc/order.htm можно только заказать компонент начиная с 95 евро. Хотя в поиске находятся упоминания о том, что компонент стал open source, но, видимо, автор уже передумал
Автор: Kustarnik
Дата сообщения: 22.09.2005 14:37

Цитата:
Подскажите, кто как решает следующую проблему:
Tdataset выбирает около 2 млн. записей. При прокрутке в конец выборки приложение вылетает по памяти. Выборку уменьшать нельзя. Надо видеть все записи. Есть что-нибудь для решения этой проблемы....

ChSerg разделяй и властвуй! Раздели задачу на две. (Через Query).
1. Показывать содержимое всего по какому либо одному полю (номеру записи, имени и т.п.). (Query1)
2. Показывать выбранную запись полностью. (Query2)
Автор: vndovr
Дата сообщения: 22.09.2005 15:06

Цитата:

Подскажите, кто как решает следующую проблему:
Tdataset выбирает около 2 млн. записей. При прокрутке в конец выборки приложение вылетает по памяти. Выборку уменьшать нельзя. Надо видеть все записи. Есть что-нибудь для решения этой проблемы....

А что, кто-то в состоянии просмотреть глазами 2 млн. записей сразу?
Автор: ChSerg
Дата сообщения: 22.09.2005 15:14
Kustarnik

Не подходит. Надо группировать, использовать инкрементный поиск и т.д и т.п.

vndovr

Я не спрашиваю, надо или не надо, в состоянии или не в состоянии.
Я спрашиваю как решить эту проблему!!!!
Уж поверьте, перед тем как написать вопрос, вопросы с надо или не надо были все обсуждены...
Автор: alexist
Дата сообщения: 22.09.2005 15:18
Посоветуйте компонент для сканирования документов.
Есть ли он вообще?
Автор: deks
Дата сообщения: 22.09.2005 15:21
ChSerg

есть такой компонент - tgbDataSet, был на DevRace.com в разделе файлов для FibPlus . это типа особым образом оптимизированный компонент для просмотра БОЛЬШИХ датасетов череж фибы. последняя версия типа 1.04 или 1.06 - уже не помню..
Автор: ChSerg
Дата сообщения: 22.09.2005 16:16
deks

Пасиб.

Вот если бы еще под Oracle этот компонент переделать....
Цены бы ему не было....
Автор: Dronton2
Дата сообщения: 22.09.2005 17:03
ChSerg
Если нужно группировать, использовать инкрементальный поиск и т.п., то лучше эти процедуры выполнять на сервере (тем более, если сервер - Oracle), а клиенту передавать только то, что ему поместится на экран. Таким образом и трафик существенно сократится, и работать будет шустрее (т.к. объём памяти на клиенте ограничен). НО это будет уже не TDataSet, а нечто другое, более сложное.
В качестве похожей проблемы и её решения можно привести сайт maps.google.com (говорят, что там используют технологию AJAX): общее количество данных - несколько сот гигабайт. Если бы они сначала требовали загрузить все данные на компьютер клиента, то никто бы не пользовался этим сервисом.
Автор: SergeBS
Дата сообщения: 22.09.2005 17:14
ChSerg
С чем работаешь? БД какая?


Цитата:

Я не спрашиваю, надо или не надо, в состоянии или не в состоянии.
Я спрашиваю как решить эту проблему!!!!
Уж поверьте, перед тем как написать вопрос, вопросы с надо или не надо были все обсуждены...

Как решить проблему: обсудить еще раз с профи в БД. Которые с БД не меньше 3-5 лет работают, причем с серьезными, а не типа 2-3 справочника+1 главная табличка на все.
И они тебе через 1-3 часа, смотря насколько твердолобым будешь, объяснят, что на самом деле тебе нужно не выборку делать в 2 млн. записей, а нечто совсем другое.
Для начала попробуй ответить на вопрос: что будешь делать с этой выборкой, кроме как глазами смотреть.
Группировать? - так тогда зачем тащить все, если можно тащить по группам?
Искать? - так и тащи результаты поиска. Инкрементный поиск хорош только для справочников. И то небольших.
Это так, навскидку.

Не навскидку: играя на поле СУБД играй по правилам СУБД, а не вводи свои.
А то, понимаешь, захотеть на самолете до Луны долететь можно, но как ни лети - не долетишь. Гарантирую.
Автор: ChSerg
Дата сообщения: 22.09.2005 17:43
SergeBS
Хе-хе-хе....
С базами работаю уже лет 16... с Ораклом 7 лет... сертифицированный специалист Oracle по построению и обслуживанию хранилищ данных. Имею лом написанных коммерческих приложений, реально эксплуатируемых в различных организациях...
Просто, существует база знаний в общей сложности до сотен миллионов записей, по которой аналитики должны лазить как им захочется... Это их требование.... и т.д. и т.п...
Автор: vndovr
Дата сообщения: 22.09.2005 17:58
ChSerg
А в чем проблема - выгрузить 2 млн. записей из базы на клиента да еще на нем и группировки строить ? Так памяти добавили и нет проблемы, а то потом сеть начнет случайно тормозить, если буфер на клиенте маленький будет для записей.
Автор: ChSerg
Дата сообщения: 22.09.2005 18:29
vndovr

Веселиться я тоже могу.... Лучше бы чего умное сказал....
Автор: Sphinx333
Дата сообщения: 22.09.2005 18:56

Цитата:
С базами работаю уже лет 16... с Ораклом 7 лет... сертифицированный специалист Oracle по построению и обслуживанию хранилищ данных. Имею лом написанных коммерческих приложений, реально эксплуатируемых в различных организациях...
Просто, существует база знаний в общей сложности до сотен миллионов записей, по которой аналитики должны лазить как им захочется... Это их требование.... и т.д. и т.п...


Выгнать аналитиков нахер - и не ставить откровенно бредовых задач... такое количество записей даже машина долго анализирует, не то что бы там даже очень умные аналитики.
Это случай из серии... приглашаем на работу, нужно знать 5 языков программирования... А зачем 5 то... да так, у нас несколько программ и все на разных языках... ага и все делают примерно одно и тоже... О компетентности руководства можно даже не думать...

Выход один - делать селекты по сложному фильтру... пусть объединяют как хотят - и юзать нормальный грид....
Автор: Kustarnik
Дата сообщения: 22.09.2005 19:53

Цитата:
Скачал и хочу установить ElPack 4.04 для D7
Но... есть .dcu и .dpk не нет .bpl
Возможно ли установить? Может кто-нибудь знает как?

VikLabel, сделай так:
Открывай поочереди в IDE
- elpackD7.dpk
- elpkdbD7.dpk
- elpproD7.dpk
- elmlgnD7.dpk
- elmltgD7.dpk
- dcelppD7.dpk
- dclelpD7.dpk
- dceldbD7.dpk.
RunTime (первые 3 компилируй)
Остальные компилируй и инсталлируй.
Пропиши полный путь к каталогам \Code\Source и \Code\Design через меню Tools – Environment Options – Library –Library Path
Автор: doroshka
Дата сообщения: 22.09.2005 23:42
ChSerg
А можно озвучить требования аналитиков? Просто неверится, что могут быть такие объективные требования, которые требуют выгрузки 2млн. записей. Кроме шуток, очень интересно знать. А то все вокруг кричат - бредовая задача, нераельная... А вдруг реальная? Вдруг столкнусь с такой проблемой? Так хоть буду готов... Спасибо.


Цитата:
Просто, существует база знаний в общей сложности до сотен миллионов записей, по которой аналитики должны лазить как им захочется... Это их требование.... и т.д. и т.п...

Мое глубокое убеждение - что пользователю ( даже аналитику ) надо иметь ровно столько записей, сколько он сможет увидеть на экране, ну может чуть больше... На любое его поползновение - подгружать еще немножко...

Автор: vndovr
Дата сообщения: 23.09.2005 04:02
ChSerg
Ок.
Давай все же сначала определимся - тебе нужно на клиенте 2 млн. записей реально или тебе нужна иллюзия того что они есть на клиенте?
Если (1) - см. выше - добавлять память и ждать пока 2 млн. загрузятся на клиента.
Если (2) - тогда можно посмотреть как работает тот же gb_Dataset - скорее всего он просто делает выборки небольшими порциями, перестраивая SQL запрос внутри себя.
Если не хочется писать свой компонент - брать, к примеру StringGrid и ручками отслеживать чего там пользователь нажал (Ctrl-end/home, PgUp, PgDn) и вручную сформированным запросом выбирать небольшой кусок данных, который ему нужен. Тот же инкрементный поиск - обрабатывать подобным образом.
Еще, как вариант, - выбрать только айдишки, а вторым запросом по AfterScroll - выбирать полный набор данных для отображения - только когда они требуются + кешировать локально последние выбранные записи, самому. Как вариант в котором можно пытаться двигаться. Но 2 млн. даже ID-шек - это несколько мег только данных без служебной информации - сам понимаешь как это по сети будет работать при просьбе перейти на последнюю запись. На нескольких десятках тысяч такой вариант работать будет.
Думать и смотреть по задаче - от чего можно отказаться и как ограничить пользователя от необдуманных шагов - ну клавишу End выломать , к примеру. Или строить его так, чтобы мыслей дурных не возникало
FYI - http://interbase-world.com/ru/articles/2350.php
Автор: Varenik
Дата сообщения: 23.09.2005 05:30
ChSerg
Как в литровую банку засунуть 1,5 л воды?
Ну не лезет в твой комп 2 миллиона записей!
Либо воды надо уменьшить, либо банку взять побольше, так понятно?
Автор: VikLabel
Дата сообщения: 23.09.2005 07:04
Kustarnik

Так и делаю. Получаю ошибку -
[Fatal Error] elpackD7.dpk(197): Unit ElMenuBar was compiled with a different version of ElToolBar.TCustomElToolButton
файлов .pas нет, если бы был то не было бы проблем!!!
Автор: bytex
Дата сообщения: 23.09.2005 09:36
Ребят, вопрос наверное повторялся, но подходит ли Absolute DB для работы с большим объёмом данных, порядка 500К записей ? Или лучше какие то другие аналогичные компоненты ?
Автор: zlojvavan
Дата сообщения: 23.09.2005 09:38
Raven2002

два упомянутых именно что коммерческие. автор rtc в последнее время очень сильно метался из конца в конец, IIUC уже не опенсорс - его я впрочем не пробовал ни в каком виде. MsgConnect прошлогодний есть на фиксдауне. он в принципе работоспособный но глючный я его юзаю и периодически тут испрашиваю свежих версий - молчат как партизаны нужно бы поискать в какой-нть пиринговой сети но у меня нету выходов в настоящее время

есть еще MsgCommunicator примерно аналогичной направленности. качества его не знаю, не юзал. но зато категорически не доверяю фирме-автору

а вообще отправлять-то можно по разному. да хотя бы ч/з инди. не подходит?

Добавлено:
ChSerg

если тебе _обязательно_и_неизбежно_ использовать наследие TDataSet для того чтобы получить всякие вкусности в готовом виде (дб-аварность, богатый интерфейс и функционал) то кроме как выбрать подходящий с минимальными требованиями по памяти (например TkbmMemTable в режиме Small + сжатием) или написать свой супер-экономный плюс добавить памяти столько сколько понадобится (благо она щаз вполне доступна) у тебя попросту НЕТ

альтернативно: отказаться от датасета вообще/решить задачу принципиально иным образом (избегая жирного фетча)
Автор: SergeBS
Дата сообщения: 23.09.2005 09:58
ChSerg

Цитата:

Просто, существует база знаний в общей сложности до сотен миллионов записей, по которой аналитики должны лазить как им захочется... Это их требование.... и т.д. и т.п...

Значит делаешь навороченную форму для условий выборки. Я себе фрейм сделал под это дело и порядок. Типа выбрали параметр - щелкнули в списке значений по нужным галочкам, следующий параметр выбрали .... пока не надоест этим "аналитикам". Потом select count() - и если количество разумное - получите результат (если захочется). Можно и время просмотра оценить. Если больше 8 часов например - сразу приказ о выговоре за бестолковую работу печатать . Есть еще такая штука как OLAP. Специально для аналитиков придумана. Запрячь его - вполне неплохой выход. Замаскировав и русифицировав таким образом.

Если уж этим аналитикам ну очень это надо - 2 млн. записей посмотреть, то берем калькулятор и считаем (вслух ). Пусть на запись - 0.1 секунды (нереально, зато доходчиво). Тогда на 2 млн. - больше 2-х суток. После чего можно вежливенько так поинтересоваться, нужна ли господину аналитику подушка, чтоб поспать, когда устанет записи просматривать, или его начальство сразу в пешее эротическое путешествие пошлет за подобную скорость анализа.
Все. Непомерные аппетиты устраняются только административно. Поскольку они - имитация работы с тайным желанием потребовать невозможного, а в результате заиметь железную отмазку "я бы сделал, но вот они (программисты) мне не дают".


Цитата:

Хе-хе-хе....
С базами работаю уже лет 16... с Ораклом 7 лет... сертифицированный специалист Oracle по построению и обслуживанию хранилищ данных. Имею лом написанных коммерческих приложений, реально эксплуатируемых в различных организациях...

А как насчет Дейта, Ульмана и т.п. ?
Автор: ChSerg
Дата сообщения: 23.09.2005 12:17
Ответ всем...

Уточняюсь. Реально не 2 млн. записей. За каждые сутки идет подгрузка 100 000 - 200 000 записей. Вот эту подгрузку им (аналитикам) очень хочется просмотреть глазами, побегать по ней, поискать, сгруппировать и т.д.
В принципе щас так и сделано как написал многоуважаемый vndovr, что подгрузка остальных полей идет по требованию на событии OnDisplayText у TcxGrid. Понятно, что в ни группировка, ни инкрементный поиск не работают, так как в колонках гридины на месте названия поля из DataSet пустота.
Просто думал, что может я пропустил чего из новых разработок.... Оказывается все без изменений...
Ладно... Придумаем что-нибудь.... Всем БОЛЬШОЕ СПАСИБО за советы.

Автор: Kustarnik
Дата сообщения: 23.09.2005 16:19
VikLabel, где-то у тебя на компе затерялись обломки предыдущих версий. Проверь системный каталог, а также в прописанных каталогах. Встает нормально!
Можно попробовать так: скачать триал про с home, инсталлировать-деинсталлировать (чтобы убрал все лишнее) , а потом уже ставить этот вариант.
Автор: VikLabel
Дата сообщения: 28.09.2005 14:29
Kustarnik
Спасибо!!! Поставил!!!
Автор: Kustarnik
Дата сообщения: 29.09.2005 11:05
Конкурс наилучший HTML парсер.
Участники:
1. DIHtmlParser v.4.1.1 _http://www.yunqa.de/delphi/htmlparser/
_http://www.yunqa.de/delphi/downloads/DIHtmlParser_4.1.1.exe
2. HTML DOM Parser v.1.1 _http://www.progsan.com/products/domparser.do
_http://www.progsan.de/download/easynet.zip
3. Eternal Lines HTML Parser _http://www.eternallines.com/htmlparser/index.html
_http://www.eternallines.com/htmlparser/elHTMLParser10.zip
4. TLegHtmlParser _http://www.legitima.com/files/ablht110.zip
5. HtmlTools version 1.03b от CoolDev _http://www.cooldev.com/htmltools.html
_http://www.cooldev.com/htmltools/htmltool.exe

Конечно "лучший", "оптимальный" - дело вкуса и задачи, но лично мне более всего симпатичен парсер от amsancho. Этот топик подходящее место, для того, чтобы спрашивать, советовать, обсуждать и выбирать!
Автор: Admin CSB
Дата сообщения: 29.09.2005 13:34
Kustarnik

Цитата:
Конечно "лучший", "оптимальный" - дело вкуса и задачи, но лично мне более всего симпатичен парсер от amsancho.

Доберусь домой - погляжу....
Автор: diser
Дата сообщения: 30.09.2005 15:21
имеется массив порядка 3000 на 100 элементов (точнее 3328х64) типа X_Y1_Y2_ ..._Yn (n - номер колонки), перевожу его в тройки X_Y_n. Отрисовываю 3D в TeeChart7. Почему-то при полном размере массива (3328х64х3) получаю ошибку - типа access violation, а когда исходную матрицу урезаю (точно не мерил, до ~ 2000х64) - то все нормально ..
Пачему ? И есть ли еще компоненты для 3D графики кроме TeeChart'a ? В SDL прога виснет уже на массиве 100х100
Автор: landy
Дата сообщения: 05.10.2005 11:38
Посоветуйте небольшой фришный компонент для записи/воспроизведения макросов (клавиатурных команд и мыши.)

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Что такое Объектно Ориентное Программирование ?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.