Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
Перед запуском проги идет загрузка большого объема данных. Примерно 10 секунд. Как сделать чтобы появилось такое красивой окно загрузки и на нем там или точки бегали или картинки менялись. Ну в общем по уму такое окошко, типа как при запуске фотошопа идет :) Толи гуглить не могу, толи нет такой инфы. В нете нашел только как закрыть свое окно. А как его изменить в процессе не нашел. С решением, которое нашел можно сделать так, форма, на ней надпись загрузка. По завершению loading-а закрыть окно. Но это некошер. Кто подскажет кошер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 12:14 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
ShamanusПеред запуском проги идет загрузка большого объема данных. Примерно 10 секунд. DoEvents или описывай подробно, что такое загрузка данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 12:17 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, загрузка данных это последовательность SQL запросов в базу. Их 14 штук. Каждый отрабатывает разный период времени часть полсекунды, некоторые около 5 секунд Код такой Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. проблема в том как запаралеллить процес и рисования на форме всяких картинок и загрузку, если приложение в момент загрузки запроса виснет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 13:14 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
Использовать асинхронное соединение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 13:21 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
Shamanusпроблема в том как запаралеллить процес и рисования на форме всяких картинок и загрузку, если приложение в момент загрузки запроса виснет. а тебе пауз между запросами недостаточно? Если нет - тогда асинхронное выполнение запроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 13:22 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Antonariy Сейчас попробую, но есть подозрение, что и вся проблема выполнения запроса это не само время sql, а именно задрежка в процессе в загрузке данных в массив. У меня по итогам выполнения массив возвращает 300тыс записей,он и выполняется 5 секунд. В общем сейчас попробую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 13:36 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
Shamanusа именно задрежка в процессе в загрузке данных в массив. я ж с самого начала попросил пояснить, что такое "загрузка данных"... а вообще, загрузка такого объема данных в массив наводит на мысль об ошибках проектирования системы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 13:40 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, в общем асинхронное соединение не помогло. Shocker.Proв массив наводит на мысль об ошибках проектирования системы ну может подскажешь как верно спроектировать с такой задачей. Пользователь вносит в систему информацию о товаре. Если товар в базе данных существует, то система должна быстро сказать об этом пользователю. Справочник товаров 300 тыс записей. Пользователь вносит инфу в ТекстБокс. На каждый change этого текстбокса нужно просмотреть 300 тыс записей и найти нет ли сходного товара. Варианта реализации я вижу 2. Первый - sql запрос к источнику данных в момент заполнения поля. Время работы запроса 3-7 секунд. Второй - полная загрузка данных и поиск в массиве. Время работы 7-10 секунд. Время поиска записи в массиве менее 0,5 секунд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 13:51 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
ShamanusВарианта реализации я вижу 2. Первый - sql запрос к источнику данных в момент заполнения поля. Время работы запроса 3-7 секунд. Неверная индексация БД ShamanusВторой - полная загрузка данных и поиск в массиве. Время работы 7-10 секунд. Время поиска записи в массиве менее 0,5 секунд. И куча занятой памяти под массив. Идиотское решение (пойдем в категоричности стопами Антонария) Кроме того, проверку при таком объеме надо делать на на Change, а на окончание ввода: потерю фокуса, нажатие Enter, нажатие кнопки сохранить и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 13:58 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
нашел вот такое решение сейчас попробую, вроде то, что нужно.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 13:58 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
Shamanusнашел вот такое решение сейчас попробую, вроде то, что нужно.... это и есть асинхронный запрос. Но еще раз - не надо грузить в массив 300к записей! Для этого существует БД!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 14:01 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
Shocker.Proэто и есть асинхронный запрос. Я не по поводу запроса, тут есть ещё и фишка с количеством обработанных данных. Shocker.ProИдиотское решение (пойдем в категоричности стопами Антонария) ну весьма категорично я бы сказал :) Shocker.ProНо еще раз - не надо грузить в массив 300к записей! Для этого существует БД!!!! Все таки не всегда быстрее запрашивать. Индексы нельзя построить если обращение идет к объединению таблиц. (не партициям, а именно множеству таблиц) что именно и есть в моем случае ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 15:29 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
Shamanus Все таки не всегда быстрее запрашивать. Индексы нельзя построить если обращение идет к объединению таблиц. (не партициям, а именно множеству таблиц) что именно и есть в моем случае Это что еще за глупость? Допускаю, что ты просто недостаточно внятно выразил мысль.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 15:34 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
Shocker.ProShamanus Все таки не всегда быстрее запрашивать. Индексы нельзя построить если обращение идет к объединению таблиц. (не партициям, а именно множеству таблиц) что именно и есть в моем случае Это что еще за глупость? Допускаю, что ты просто недостаточно внятно выразил мысль.... Кроме того, всегда существует возможность физической реализации плоской таблицы с нужными данными и ее индексирование ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 15:36 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Есть база Access. База подключена к внешним файлам, которые содержат фрагменты большой единой таблицы. Например Таблица.part1 Таблица.part2 Таблица.part3 База содержит union запрос из нескольких запросов к этим таблицам. Которые объединяют её в одну. У меня обращение из программы идет к этому запросу, с целью получения общей картины. Почему таблица фрагментирована? - местоположение программы, структурное подразделение компании не имеющее доступа в центральную БД, им приходится скидывать БД. Т.к. таблица весит 15 метров, и 7 в архиве, из-за каждого update в одну строку, высылать всю таблицу с нуля некошер. Высылаем обновленный фрагмент. - сама база Access тоже периодически обновляется, поэтому сливать фрагменты при каждом обновлении в кучу и строить индексы тоже неверно. Автоматизировать этот процесс нельзя. + есть лимит на размер почтового вложения 2 мб. - нужно чтобы фрагмент и база вкладывались в этот лимит. Ну, а если я начну расписывать причины, почему так сделано, ты начнешь категорично утверждать, что компания у нас гиблая и подход неверный :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 16:39 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
> Автор: Shamanus А если сделать так: Пользователь вводит как минимум две(три) буквы, после этого делаешь запрос с фильтром на введённые буквы, полученный рекордсет показываешь в выпадающем листбоксе, и при допечатке символов фильтровать уже полуенный рекордсет? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 16:43 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
ShamanusБаза содержит union запрос из нескольких запросов к этим таблицам. Которые объединяют её в одну. У меня обращение из программы идет к этому запросу, с целью получения общей картины. Ну это не отменяет использования индексов.... хотя.... union в аксессе дурной и тормознутый, это я проходил. Может быть можно использовать обращения отдельно к индексам каждой таблицы? Shamanus Почему таблица фрагментирована? - местоположение программы, структурное подразделение компании не имеющее доступа в центральную БД, им приходится скидывать БД. Т.к. таблица весит 15 метров, и 7 в архиве, из-за каждого update в одну строку, высылать всю таблицу с нуля некошер. Высылаем обновленный фрагмент. Ну, конечно, по-хорошему, это делается на MSSQL с дистрибуцией транзакций, но причин, по которым вы не используете MSSQL может быть конечно же много. Shamanus- сама база Access тоже периодически обновляется, поэтому сливать фрагменты при каждом обновлении в кучу и строить индексы тоже неверно. Автоматизировать этот процесс нельзя. + есть лимит на размер почтового вложения 2 мб. - нужно чтобы фрагмент и база вкладывались в этот лимит. Я намекал на то, что можно теоретически, вместо памяти сливать эти данные в локальный mdb-файл. Тогда во-первых эту операцию можно будет проделывать не при каждом запуске программы, а только по необходимости, ну и, соответственно, нет проблем с индексированием. Лично я довольно косо смотрю на процесс, который отжирает от 15-ти мегов оперативки.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2010, 17:02 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос > Автор: Shamanus А если сделать так: Пользователь вводит как минимум две(три) буквы, после этого делаешь запрос с фильтром на введённые буквы, полученный рекордсет показываешь в выпадающем листбоксе, и при допечатке символов фильтровать уже полуенный рекордсет? like запрос к этой таблице отрабатывает 3-5 секунд. Или я неправильно что то делаю? Shocker.Pro Ну это не отменяет использования индексов.... хотя.... union в аксессе дурной и тормознутый, это я проходил. Может быть можно использовать обращения отдельно к индексам каждой таблицы? Вот тут поподробнее, вообще не пойму о чем речь. Думал построить индексы на union запрос нельзя в принципе. Shocker.ProЯ намекал на то, что можно теоретически, вместо памяти сливать эти данные в локальный mdb-файл. Тогда во-первых эту операцию можно будет проделывать не при каждом запуске программы, а только по необходимости, ну и, соответственно, нет проблем с индексированием. я вот чето не пойму, как это при необходимости? Все равно нужно будет при запуске проверять изменилось ли чего. А count по количеству записей будет отрабатывать также долго. или хранить дату/время создания фрагментов? А откуда прога знает сколько фрагментов? Shocker.ProЛично я довольно косо смотрю на процесс, который отжирает от 15-ти мегов оперативки.... Ну это ты пользователю будет сугубо лично индифферентно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2010, 08:50 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
ShamanusДумал построить индексы на union запрос нельзя в принципе. Индексы строятся на таблицы, а не на запросы (материализованные представления в MSSQL опустим). Запросы используют эти индексы. Другой вопрос, что аксесс плохо (по крайней мере лет 5 назад, щас не знаю) работал с UNION-ами в плане скорости. другой вопрос, что ты ищешь Like-ом. Тут индексы - да, не помогут. Shamanusя вот чето не пойму, как это при необходимости? Все равно нужно будет при запуске проверять изменилось ли чего. А count по количеству записей будет отрабатывать также долго. или хранить дату/время создания фрагментов? А откуда прога знает сколько фрагментов? Почему также долго? Если Like не использует индексы, то Count-то - вполне. Насчет фрагментов - не знаю, как у тебя устроены изменения этой структуры. Твой UNION-запрос как-то ведь об этом узнает... ShamanusShocker.ProЛично я довольно косо смотрю на процесс, который отжирает от 15-ти мегов оперативки.... Ну это ты пользователю будет сугубо лично индифферентно. А что база по размеру не расширяется постоянно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2010, 09:59 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
Shocker.ProНасчет фрагментов - не знаю, как у тебя устроены изменения этой структуры. Твой UNION-запрос как-то ведь об этом узнает... запрос "узнает" при обновлении самой базы аксесс Shocker.ProА что база по размеру не расширяется постоянно? скорость роста маленькая. За месяц прирастает 1-1,5 тыс записей. Или рост за год 4,3% или 20Мб+5%=21МБ через год. Метром больше, метром меньше .. Shocker.Pro, такой ещё вопрос в рамках этой же задачи. Я пытаюсь уже не закорачиваясь просто сделать форму, которая появляется перед загрузкой приложения, в процессе загрузки на ней меняется label, и она hide-тся после обработки всех запросов. Но форма появляется белая, как недозагруженная... вот скрин ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2010, 10:36 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
сорри интернет тупит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2010, 10:37 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
> Автор: Shamanus Дык, ты, это, сначала покажи форму, дай ей отрисоватся, а потом начинай загрузку делать Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2010, 10:40 |
|
||
|
Окно загрузки файла
|
|||
|---|---|---|---|
|
#18+
Среда разработки VB6 код такой Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. в коде формы 1 никаких процедур нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2010, 10:41 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=36727565&tid=2159589]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 149ms |

| 0 / 0 |
