|
Простая программа рисования данных из базы
|
|||
---|---|---|---|
#18+
Доброго времени суток! Появилась необходимость показать одним писакам, что такое оптимальный код (или удостовериться, что PowerBuilder этого не умеет):). Дабы сразу не закидали камнями скажу, что их софт формирует табличку из 21 столбца и 16 строк примерно 3-5 минут. Я писал аналог на С++Builder 5, там это выполнялось менее секунды. Хочу скомпилить приложение, которое будет выполнять данный фрагмент. PowerBilder 8 вижу впервые:). Теперь постановка задачи: Имеется база на постгресе. В ней интересует пара табличек. Что бы не формировать сводную таблицу (много вложений), проще всего вручную пройтись по значениям и нарисовать. Нагуглил, что можно делать во так: Код: plaintext 1.
Итого вопросы: 1. Как правильно связаться с базой и открыть запрос? 2. Как нарисовать прямоугольник с заданными координатами и заданного цвета (список параметров не нашёл:(). Заранее спасибо всем откликнувшимся. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2011, 18:39 |
|
Простая программа рисования данных из базы
|
|||
---|---|---|---|
#18+
1. например так 2. использовать заранее подготовленную оформленную так как вам нужно DataWindow. потом пишете Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2011, 23:29 |
|
Простая программа рисования данных из базы
|
|||
---|---|---|---|
#18+
TAIPHOON...интересует пара табличек. Что бы не формировать сводную таблицу (много вложений), проще всего вручную пройтись по значениям и нарисовать.Можно про это поподробнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2011, 08:29 |
|
Простая программа рисования данных из базы
|
|||
---|---|---|---|
#18+
TAIPHOONДоброго времени суток! Появилась необходимость показать одним писакам, что такое оптимальный код (или удостовериться, что PowerBuilder этого не умеет):). Дабы сразу не закидали камнями скажу, что их софт формирует табличку из 21 столбца и 16 строк примерно 3-5 минут. Я писал аналог на С++Builder 5, там это выполнялось менее секунды. Хочу скомпилить приложение, которое будет выполнять данный фрагмент. PowerBilder 8 вижу впервые:). Теперь постановка задачи: Имеется база на постгресе. В ней интересует пара табличек. Что бы не формировать сводную таблицу (много вложений), проще всего вручную пройтись по значениям и нарисовать. Нагуглил, что можно делать во так: Код: plaintext 1.
Итого вопросы: 1. Как правильно связаться с базой и открыть запрос? 2. Как нарисовать прямоугольник с заданными координатами и заданного цвета (список параметров не нашёл:(). Заранее спасибо всем откликнувшимся. А что такое band="qw" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2011, 15:46 |
|
Простая программа рисования данных из базы
|
|||
---|---|---|---|
#18+
TAIPHOON, А Modify в качестве результата возвращает позицию, где в синтаксисе ошибка. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2011, 17:11 |
|
Простая программа рисования данных из базы
|
|||
---|---|---|---|
#18+
PL99TAIPHOON...интересует пара табличек. Что бы не формировать сводную таблицу (много вложений), проще всего вручную пройтись по значениям и нарисовать.Можно про это поподробнее? Табличка - график работы. Чем делать сводную, берём время начала работы в указаный день и окончания - нарисовали прямоугольник. И так семь раз. Всё. Очень быстро работает. А делать мега сводный запрос будет долго обрабатыавться. Локшин МаркTAIPHOON, А Modify в качестве результата возвращает позицию, где в синтаксисе ошибка. Возвращается пустая строка:(. Кстати как тут поставить брекпоинты? sboykoА что такое band="qw" ? Самому любопытно)) взял из какого то примера. VanoR1. например так А разве использовать глобальное подключение правильно? Мне казалось что как то через компонент transaction. А как ODBC на постгрес натравить? VanoR2. использовать заранее подготовленную оформленную так как вам нужно DataWindow. потом пишете Код: plaintext 1.
Для этого нужна сводная таблица, а она будет долго формироваться, кроме того некоторые из прямоугольников будут залиты только на половину:). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2011, 19:21 |
|
Простая программа рисования данных из базы
|
|||
---|---|---|---|
#18+
TAIPHOONPL99пропущено... Можно про это поподробнее? Табличка - график работы. Чем делать сводную, берём время начала работы в указаный день и окончания - нарисовали прямоугольник. И так семь раз. Всё. Очень быстро работает. А делать мега сводный запрос будет долго обрабатыавться. Если у вас есть набор некий данных, то можете попробовать сделать аналогично тому, как сделано в приаттаченном файле. А лучше, сформулируйте исходную задачу в терминах DLL. Желательно с тестовыми данными. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2011, 10:04 |
|
Простая программа рисования данных из базы
|
|||
---|---|---|---|
#18+
PL99Если у вас есть набор некий данных, то можете попробовать сделать аналогично тому, как сделано в приаттаченном файле. А лучше, сформулируйте исходную задачу в терминах DLL. Желательно с тестовыми данными. Я очень плохо разбираюсь в PB, как импортировать данный код? И сорри, но я не в курсе, что такое "в терминах DLL":(. Постараюсь полностью описать задачу: Имеется график работы врачей и записи к ним на приём. Необходимо нарисовать таблицу, где строками будет время с интервалом в пол часа, а в столбцах день недели+Фамилия врача т.е. на каждый день недели есть столько столбцов, сколько врачей работает в этот день. Если полный выходной, просто пустой столбец. Ячейка заполняется на половину, если в это время врач ведёт приём, и полностью, если на это время записан пациент. На данный момент разработчики делают мега запрос с кучей пересозданий таблиц вложений. Я хочу перенести данное действо с сервера на клиента, т.к. задача лишь показать на экран. 1. Открываем график работы на заданный понедельник, смотрим сколько человек работает - делаем шапку. 2. Проходим по каждому врачу и зарисовываем половинки ячеек. 3. Открываем запись на приём и прорисовываем вторые половинки ячеек. На C++Builder это делается тривиально рисованием на форме (естественно сначала в памяти, а потом шлёпаем на форму при перерисовке формы). Тут я на могу понять идеологии программирования:(. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2011, 19:16 |
|
Простая программа рисования данных из базы
|
|||
---|---|---|---|
#18+
TAIPHOONНа C++Builder это делается тривиально рисованием на форме (естественно сначала в памяти, а потом шлёпаем на форму при перерисовке формы). Тут я на могу понять идеологии программирования:(. Забей. Эхотаг не настолько примитивен, чтобы освоить его за час. Задача не из сложных, но если пытаться копировать C++Builder - получится epic fail. Нормальный способ сделать это на эхотаге - ХП на сервере, выдающая какой надо набор данных, и crosstab на клиенте. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2011, 19:48 |
|
Простая программа рисования данных из базы
|
|||
---|---|---|---|
#18+
TAIPHOONНа C++Builder это делается тривиально рисованием на форме (естественно сначала в памяти, а потом шлёпаем на форму при перерисовке формы). Тут я на могу понять идеологии программирования:(. Здесь возмоможен аналогичный подход, но рисовать нужно не на форме, а создавать объекты внутри DataWindow (можно кончено и на форме извратиться, но это совсем сложно выйдет), или использовать CrossTab, как уже предложили. Однако "с наскока" это действительно не выйдет сделать - придется недельку минимум поучить PB. Проблема, как я понимаю, по тому что описано Вами - в кривом запросе (запросах) к БД, а не в построении таблички. Пусть оптимизируют запросы. Индексы например построют... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2011, 22:48 |
|
Простая программа рисования данных из базы
|
|||
---|---|---|---|
#18+
Локшин МаркЗдесь возмоможен аналогичный подход, но рисовать нужно не на форме, а создавать объекты внутри DataWindow (можно кончено и на форме извратиться, но это совсем сложно выйдет), или использовать CrossTab, как уже предложили. Однако "с наскока" это действительно не выйдет сделать - придется недельку минимум поучить PB. Проблема, как я понимаю, по тому что описано Вами - в кривом запросе (запросах) к БД, а не в построении таблички. Пусть оптимизируют запросы. Индексы например построют... Скорее всего рисовать в DataWindow, но что то не получается:( Где бы почитать про параметры? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2011, 12:17 |
|
Простая программа рисования данных из базы
|
|||
---|---|---|---|
#18+
TAIPHOONЯ очень плохо разбираюсь в PB, как импортировать данный код? В library painter выбрать пункт меню Entry->Import. Не следует думать, что пример у вас заработает, ему еще нужен какой-нибудь Oracle. Но, как я понял, у вас есть набор данных, который вы собираетесь отображать, не так ли? TAIPHOONИ сорри, но я не в курсе, что такое "в терминах DLL":(.Прошу прощения, конечно же, DDL. Меня интересует структура данных, для которых выполняется "мега сводный запрос". TAIPHOONПостараюсь полностью описать задачу: Имеется график работы врачей и записи к ним на приём. Необходимо нарисовать таблицу, где строками будет время с интервалом в пол часа, а в столбцах день недели+Фамилия врача т.е. на каждый день недели есть столько столбцов, сколько врачей работает в этот день. Если полный выходной, просто пустой столбец. Ячейка заполняется на половину, если в это время врач ведёт приём, и полностью, если на это время записан пациент. На данный момент разработчики делают мега запрос с кучей пересозданий таблиц вложений. Я хочу перенести данное действо с сервера на клиента, т.к. задача лишь показать на экран. 1. Открываем график работы на заданный понедельник, смотрим сколько человек работает - делаем шапку. 2. Проходим по каждому врачу и зарисовываем половинки ячеек. 3. Открываем запись на приём и прорисовываем вторые половинки ячеек. На C++Builder это делается тривиально рисованием на форме (естественно сначала в памяти, а потом шлёпаем на форму при перерисовке формы). Тут я на могу понять идеологии программирования:(.Вы полагаете, что два запроса будут выполняться быстрее, чем один? Такое, конечно, возможно, но это явным образом указывает на малый радиус рук архитектора БД. Собственно говоря, я солидарен с Марком, Локшин МаркПусть оптимизируют запросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2011, 15:26 |
|
Простая программа рисования данных из базы
|
|||
---|---|---|---|
#18+
PL99В library painter выбрать пункт меню Entry->Import. Импорт неактивен:(. Нагуглил, что с 8 до 10 версии ПБ изменился формат. PL99Не следует думать, что пример у вас заработает, ему еще нужен какой-нибудь Oracle. Но, как я понял, у вас есть набор данных, который вы собираетесь отображать, не так ли? TAIPHOONИ сорри, но я не в курсе, что такое "в терминах DLL":(.Прошу прощения, конечно же, DDL. Меня интересует структура данных, для которых выполняется "мега сводный запрос". Прочитал в вики про ДДЛ. Вот структура необходимых таблиц (из серии "аффтар жжот. пеши исчо"): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
Сводная таблица (заранее не определено количество столбцов в день) будет формироваться не быстро, даже если её нормально написать. А пара тривиальных запросов выполняться практически мгновенно. PL99Вы полагаете, что два запроса будут выполняться быстрее, чем один? Такое, конечно, возможно, но это явным образом указывает на малый радиус рук архитектора БД. Собственно говоря, я солидарен с Марком, Локшин МаркПусть оптимизируют запросы. С радиусом там точно проблема. Там выполняется пусть и один, но очень большой запрос с перезаполнением таблиц (одна из которых имеет количество строк примерно кол-во врачей*300). Хотя для вывода нужны данные трёх таблиц (справочник врачей, график приёма, запись на приём), фрагменты которых я привёл. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2011, 19:45 |
|
Простая программа рисования данных из базы
|
|||
---|---|---|---|
#18+
TAIPHOONСводная таблица (заранее не определено количество столбцов в день) будет формироваться не быстро, даже если её нормально написать. А пара тривиальных запросов выполняться практически мгновенно. это пара простых селектов выполнится почти мгновенно, а потом же вы их будете циклами перебирать это все равно будет медленнее чем взять из базы сразу то что надо честно говоря не совсем понимаю что там за такой тяжелый запрос, врачей (столбцов) явно не много, строк тоже не должно быть много, там же надеюсь с интервалом в полчаса за какой-то небольшой период а не все что в базе есть?) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2011, 11:00 |
|
Простая программа рисования данных из базы
|
|||
---|---|---|---|
#18+
TAIPHOONВот структура необходимых таблиц...Прошу прощения, никак руки не дойдут до ваших таблиц. Задача еще не потеряла актуальность? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2011, 11:16 |
|
|
start [/forum/search_topic.php?author=SarinFromMars&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 492ms |
total: | 633ms |
0 / 0 |