Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Флудильня :) (не знаешь где спросить? спрашивай здесь!)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92

Открыть новую тему     Написать ответ в эту тему

akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Флудильня :)
(не знаешь где спросить? спрашивай здесь!)

Флудильня-говорильня, Флеймоварня-отвечальня

 
Флейм, флуд, holy wars, а также о программировании вообще :)
Допускаются любые обсуждения и высказывания на тему программирования и около.
Просьба не переходить на личности и не обсуждать политику и тд...
 

Решаемые задачи:
. . . .
       
. . . .
 
 


 

первый пост топикстартера
...
во всех разделах форума есть, а чем мы хуже?
есть ведь откровенный флуд почти во всех топиках, так почему бы его не организовать...
сюда можно и holy wars перенести...
название темы естественно обсуждаемо, тут я ни на что не претендую...

в качестве затравки...
 
прочитал небольшую заметку о разработке советского/российского космического ПО...
и офигел...
 
оказывается почти всё ПО разработано и продолжает разрабатываться на
внимание!
на Модуле-2!
включая новую ГЛОНАСС...
о как!
 
--akaGM :)


Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 15:08 05-11-2008 | Исправлено: akaGM, 02:23 18-09-2023
SuPriTo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ahaltek

Цитата:
а как можно сделать?

1. Либо на уровне оптимизации sql запросов.
2. Либо на уровне оптимизации интерфейса. Например, не выводить все эти окна одновременно, а только по запросу. Неужто все 50 таблиц нужны и с ними работает пользователь. Пользователь все равно работает с 1 или 2 запросами, все остальное можно получать по требованию.
3. Либо копированием данных из запросов в локальные данные - например, в память или на диск, но тут возникает проблема синхронизации. Кроме того, если доступ к базе осуществляется быстро, то не имеет смысла копировать данные локально, легче их из базы получить.  
Далее вам решать, как поступить.

Цитата:
в чем хранить данные что бы их видно было?

Сделали query, который не связан с Grid, результат скопировали в память, удалили query. Если нужно связать с гридом, то воспользовались специальным компонентом, который позволяет данные, сохраненные в памяти, выводить в grid.

Всего записей: 1475 | Зарегистр. 24-03-2009 | Отправлено: 11:24 22-09-2014 | Исправлено: SuPriTo, 11:28 22-09-2014
Ahaltek



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SuPriTo
 
Так если в память грузить потом все равно нужна синхронизация памяти и сервера.
Раз нет?  
А кокой компонент посоветуете использовать если грузить в память?
 
Добавлено:
установлено PgDAC. Но использую тупо conect и Query

Всего записей: 238 | Зарегистр. 08-09-2008 | Отправлено: 12:52 22-09-2014
SuPriTo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Так если в память грузить потом все равно нужна синхронизация памяти и сервера.  


Цитата:
Либо копированием данных из запросов в локальные данные - например, в память или на диск, но тут возникает проблема синхронизации.

Да. Поэтому лучше оптимизировать запросы и/или интерфейс программы и/или перейти на хранимые процедуры, вместо sql запросов (если они поддерживаются)  

Цитата:
А кокой компонент посоветуете использовать если грузить в память?  

FireDac - TFDMemTable
ehLib - TMemTableEh (сам пользуюсь этим)
Но есть другие, где-то проходил тут тест, какой компонент лучше. Попробуйте поискать по форуму.

Всего записей: 1475 | Зарегистр. 24-03-2009 | Отправлено: 14:02 22-09-2014 | Исправлено: SuPriTo, 14:18 22-09-2014
protoror



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот ссылка если чего
http://forum.ru-board.com/topic.cgi?forum=33&topic=8529&start=5760#20

Всего записей: 494 | Зарегистр. 23-11-2009 | Отправлено: 14:08 22-09-2014
Ahaltek



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SuPriTo
В ehLib использовал только Grid.
А TMemTableEh каждый раз создавать для отображения таблицы и при закрытии уничтожать?

Всего записей: 238 | Зарегистр. 08-09-2008 | Отправлено: 14:28 22-09-2014
SuPriTo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А TMemTableEh каждый раз создавать для отображения таблицы и при закрытии уничтожать?

Да, как вам удобнее, так делайте. Я лично в своем проекте, раз туда данные загрузил и держал до тех пор, пока они нужны, потом закрывал.

Всего записей: 1475 | Зарегистр. 24-03-2009 | Отправлено: 14:37 22-09-2014
Ahaltek



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
A еще вопрос как синхронизировать? компонентами(если есть)  и/или  ручками?  
Плиз дайте направление
 
Добавлено:
Тогда получается для тех таблиц которые будут открыты нужно добавлять TMemTableEh.
И если я захочу 10 открыть ... то понадобиться 10 TMemTableEh.  
Интересно в 1с как? Там ведь кол-во таблиц не ограничено.

Всего записей: 238 | Зарегистр. 08-09-2008 | Отправлено: 15:55 22-09-2014
vkramnik



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ahaltek
В 1с 8.х - если просто в памяти таблицу (ТаблицуЗначений) создать - то сколько хошь,
а вот если на форме отображать - то либо нужное кол-во компонент на форму кидать,
либо каждый раз компоненте источник данных (т.е., таблицу) переназначать,
либо вперемешку и то, и другое...

Всего записей: 1850 | Зарегистр. 14-12-2005 | Отправлено: 16:56 22-09-2014 | Исправлено: vkramnik, 16:57 22-09-2014
SuPriTo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
A еще вопрос как синхронизировать? компонентами(если есть)  и/или  ручками?  
Плиз дайте направление  

Для того, чтобы дать ответ на этот вопрос - нужно знать, что за проект вы делаете. Скорее всего ручками придется это делать. Но я уже говорил, может быть легче интерфейс переделать или оптимизировать запросы (query). Можно ведь просто создать query без Grid и бегать по записям и будет тебе тот же TMemTableEh. И тогда ничего не нужно усложнять. Мне кажется, что вы усложняете вещи, которые можно сделать очень просто. TMemTableEh нужен, если в логике приложения необходима обработка данных или ускорение доступа к данным.
Не правильно сравнивать ваше приложение и 1с. Вторая - это среда разработки бухгалтерских программ.

Всего записей: 1475 | Зарегистр. 24-03-2009 | Отправлено: 17:05 22-09-2014 | Исправлено: SuPriTo, 17:12 22-09-2014
protoror



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 Не правильно сравнивать ваше приложение и 1с. Вторая - это среда разработки бухгалтерских программ.

золотые слова

Всего записей: 494 | Зарегистр. 23-11-2009 | Отправлено: 17:50 22-09-2014
asutp2

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
платиновые

Всего записей: 790 | Зарегистр. 22-10-2004 | Отправлено: 08:17 23-09-2014
Ahaltek



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SuPriTo

Цитата:
 нужно знать, что за проект вы делаете

 
Проект - делопроизводство отдела закупа. Знаю что есть конф-я 1с "Делопроизводство"(не придлогать ).  Смысл примерно такой: приходит заявка(таб1) под номером(на товары, на услуги) от нее создается договор(местные(таб2) и зарубежные(Таб3)) с приложениями допсогашениями (таб4).. В каждого приложения есть товар/услуга(таб5) который надо купить,сч/ф(таб6) счет на оплату(таб7).Также справочники по организациям, банкам, пользователям ... . И это 10%  базы. Почти 1с Бухгалтерия .
Шеф "продвинутый пользователь", начинал проект как он говорил, с пару таблиц. Последние росли росло и их количество. Связываю их по ID.  
 Использую EMS SQL manager.  В нем все таблицы открываются и можно редактировать. наврятли в  SQL manager и 1с идет переключение компонент с неизвестным кол-вом таблиц.  
Проще говоря, можно избавиться от  постоянного создания Query и чрезмерного переключения между компонентами?  
 
Добавлено:
И в мыслях не было сравнивать свою программульку с С ТАКИМИ ГИГАНТАМИ КАК 1С И EMS.
Меня интересуют принципы их работы касающиеся поднятого мной вопроса и как лучше организовать работу проекта.

Всего записей: 238 | Зарегистр. 08-09-2008 | Отправлено: 08:57 23-09-2014
protoror



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Незнаю я в своих прогах делаю одну таблицу главную содержащую основные записи, далее отдельно во вкладках при переходе открываю необходимые поля для заполнения или связанный запос, итого открыто всегда 2 запоса.  
В связанных запросах конечно же может быть выборка из нескольких таблиц.
И глаза куча полей не мозолит и юзеру понятна последовательность заполнения

Всего записей: 494 | Зарегистр. 23-11-2009 | Отправлено: 09:22 23-09-2014
SuPriTo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Проще говоря, можно избавиться от  постоянного создания Query и чрезмерного переключения между компонентами?

Избавиться можно от чего угодно. Вопрос в том, что делает пользователь при этом всем.
Счета на оплату, договора и доп. соглашения генерируются автоматически - здесь можно объединить все в один код и вероятно уменьшить кол-во запросов. Я так понимаю, вы делаете на каждый запрос по таблице и получается куча таблиц. Так ведь можно делать запросы без привязки к таблицам. Сделали запрос обработали данные и удалили запрос. А некоторые вопросы можно решить на стороне сервера за счет хранимых процедур, например, всю генерацию отчетов и договоров можно делать на стороне сервера. Базы данных postgreSQL поддерживаю хранимые процедуры. Я вам советую пересмотреть интерфейс и запросы и часть обработки данных перенести на сервер.

Всего записей: 1475 | Зарегистр. 24-03-2009 | Отправлено: 09:40 23-09-2014
Ahaltek



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SuPriTo
 
Цитата:
 Так ведь можно делать запросы без привязки к таблицам

Я извиняюсь. Я наверное не объяснил, таблицами называю данные на сервере а не отображение в гриде.
Для наглядности сотрудниками(они как дети) на главной форме как в Excel выводится результат запроса по основной таб "Договоры" с запретом редактирования, что бы случайно "не испортили". Выбирается одним запросом(select ... left join...) из разных таблиц на сервере(Договоры-таб1, пользователи-таб2, фирмы-таб3...). Создаются/редактируется строка(№ договора, дата договора, фирма, пользователь....) в отдельной форме с DBLookComboBox-ами(это еще + несколько query под выбор таб2,таб3...). Например, когда редактирую договор выбераем фирму(DBComboEdit)? выскакивает справочник по фирмам. Если есть фирма Duobleclick, а если фирмы нет то новая форма с добавлением фирмы(название,адрес....)  Это все открываю ShowModal т.к. переключаю query. Но пользователи хотят что бы не закрывать это все открыть например таблицу Заявок и редактировать ее в еще новой форме. Как быть в таком случае?

Всего записей: 238 | Зарегистр. 08-09-2008 | Отправлено: 13:05 23-09-2014
SuPriTo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Как быть в таком случае?

Переделать интерфейс, некоторые действия запрограммировать в хранимых процедурах на стороне сервера и вызывать их с сервера (клиентский код на много проще будет). Справочники грузить в отдельных query и делать копии для их редактирования. Лучше сделать для каждого справочника отдельное окно с редактированием и добавлением записей, а также выбором записей из этого справочника в других окнах.  
У меня ощущение, что у вас не приложение, а какая то большая каша.

Всего записей: 1475 | Зарегистр. 24-03-2009 | Отправлено: 13:17 23-09-2014
Ahaltek



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SuPriTo

Цитата:
Справочники грузить в отдельных query и делать копии для их редактирования

А для чего делать копии? их потом надо синхронизировать с оригиналом.
 
 
Добавлено:
У меня минимум SQL-а. Select, INSERT. В основном простая выборка, а правка, добавление средствами delphi а не SQL.  
Щас буду ковырять хранимые процедуры. Благодарю за помощь.

Всего записей: 238 | Зарегистр. 08-09-2008 | Отправлено: 14:13 23-09-2014
SuPriTo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А для чего делать копии? их потом надо синхронизировать с оригиналом.  

В этом случае не нужно делать копии.

Всего записей: 1475 | Зарегистр. 24-03-2009 | Отправлено: 14:17 23-09-2014
Sorok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Для программистов.
 
Программа сравнения двух версий кода, текста.....

Всего записей: 1709 | Зарегистр. 27-09-2001 | Отправлено: 14:55 24-09-2014
asutp2

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sorok
смотри результаты тестирования в Инстрементарии программиста

Всего записей: 790 | Зарегистр. 22-10-2004 | Отправлено: 18:07 24-09-2014
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Флудильня :) (не знаешь где спросить? спрашивай здесь!)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru