7 / 7 / 2
Регистрация: 25.10.2017
Сообщений: 90
1

Можно ли показать "загрузку" при выполнении запроса?

14.02.2018, 16:45. Показов 1290. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день уважаемые форумчане. Вопрос в следующем, есть возможность сделать не то чтобы анимацию, но хотя бы всплывающее окно во время выполнения запроса?
К примеру есть у меня поиск, я его не вполне верно сделал (как смог без помощи), из-за этого тратится от 15 до 40 секунд на поиск одной записи. Вот и созрел вопрос, а как мне сделать всплывающее окно, дескать "загрузка"? Есть вообще варианты?
Заранее спасибо за помощь.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.02.2018, 16:45
Ответы с готовыми решениями:

При выполнении функции результат должен показать, сколько строк в таблице TABLE при условии P1= MY_DATE
Здравствуйте помогите с запросом Знатоки плизз! Создать функцию с входным параметром P1(DATE),...

Спрятать, показать картинку Image при выполнении условия.
Доброе утро. Хотел узнать как грамотнее сделать так, что бы при выполнении условия на экране...

Виснет при выполнении запроса
Всем привет! Не нахожу решения. Имеются две таблицы dbm_table1 и dbm_table2 в первой 23000000...

Анимация при выполнении запроса
Здравствуйте друзья. Выполняю запрос к базе на выборку, хочу в течении запроса выводить анимацию...

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

20
Модератор
Эксперт MS Access
6034 / 2858 / 696
Регистрация: 12.06.2016
Сообщений: 7,712
14.02.2018, 18:37 2
Цитата Сообщение от kpevetko
Есть вообще варианты?
1. Первый вариант. Строка состояния.
2. Второй вариант. Полоска слежения.
3. Третий вариант. Просто форма с сообщением.

Но лучше запрос подработать.
Слишком долго идет.
0
Заблокирован
14.02.2018, 19:36 3
Capi, А асть способ? - не знал ....
А можно пару строчек кода по поводу отображения процесса выполнения запроса?
Ну допустим в ProgressBarControl формы или, хотя - бы, в строке состояния.

Век живи! - Век учись!
(это я про себя)
0
7 / 7 / 2
Регистрация: 25.10.2017
Сообщений: 90
14.02.2018, 19:38  [ТС] 4
Цитата Сообщение от Capi Посмотреть сообщение
1. Первый вариант. Строка состояния.
2. Второй вариант. Полоска слежения.
3. Третий вариант. Просто форма с сообщением.

Но лучше запрос подработать.
Слишком долго идет.
Понимаю что нужно дорабатывать, но мыслей не так чтобы много.
А вот к примеру строка состояния, как можно реализовать?
0
Заблокирован
14.02.2018, 19:49 5
Цитата Сообщение от kpevetko Посмотреть сообщение
сделал (как смог без помощи), из-за этого тратится от 15 до 40 секунд на поиск одной записи.
Уважаемая Capi права, что-то слишком долго выполняется ваш запрос.
Если это не обусловлено некими "заковыристыми" причинами, то - уверен есть простор для оптимизации и ускорения.
Я - бы по этому пути пошел.
0
Модератор
Эксперт MS Access
6034 / 2858 / 696
Регистрация: 12.06.2016
Сообщений: 7,712
14.02.2018, 19:50 6
kpevetko,

Сначала покажите свой поиск. Код.
А то неизвестно, к чему прицепиться.
0
7 / 7 / 2
Регистрация: 25.10.2017
Сообщений: 90
14.02.2018, 20:04  [ТС] 7
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Уважаемая Capi права, что-то слишком долго выполняется ваш запрос.
Если это не обусловлено некими "заковыристыми" причинами, то - уверен есть простор для оптимизации и ускорения.
Я - бы по этому пути пошел.
Заковырки есть. Их не мало.

Добавлено через 1 минуту
Цитата Сообщение от Capi Посмотреть сообщение
kpevetko,

Сначала покажите свой поиск. Код.
А то неизвестно, к чему прицепиться.
Завтра с работы приду скину БД. Слегка обрезанную, но суть будет ясна.
0
Модератор
Эксперт MS Access
11979 / 4846 / 781
Регистрация: 07.08.2010
Сообщений: 14,203
Записей в блоге: 4
14.02.2018, 20:04 8
Цитата Сообщение от kpevetko Посмотреть сообщение
Заковырки есть. Их не мало.
может с их и начать ускорение
0
7 / 7 / 2
Регистрация: 25.10.2017
Сообщений: 90
14.02.2018, 20:23  [ТС] 9
Кстати, по поводу заковырок я попробую пояснить.

В общем задача у меня стояла следующая:
--есть 3 основных массива данных,
--3 таблицы (на самом деле больше, но в данном случае 3 типа таблиц,
--в общем необходимо было сделать поиск по всем таблицам, но поскольку полей одинаковых в этих таблицах нет, пришлось выдумывать.

Что я сделал:
--сделал "принадлежность" к определенному типу таблицы, к примеру: сотрудники, происшествия, последствия (это просто пример), т.е.
--Добавил в каждую таблицу по 1 полю где и прописал эту "принадлежность".
--Далее поясню зачем нужна была эта принадлежность.
--Суть её в том что в зависимости от принадлежности к той или иной странице, должна открываться форма с полями вмещающими всю информацию о данной записи.
--Далее, поскольку полей одинаковых нет, я переименовал некоторые поля, со схожими данными из разных таблиц в одинаковые названия, к примеру ФИО AS Сотрудник from таблица1 и Виновник AS Сотрудник from таблица2.
--Таких образом, после этого через запрос на объединение я сделал поиск по всем 3 типам таблиц, в форме мне выдавались Сотрудник, Номер системный и Принадлежность.
--После чего я переходил к необходимому сотруднику по системному номеру и форма открывалась та или иная в зависимости от Принадлежности.

И вот если при переходе особенно не тормозит (2-4 секунды), то поиск может занимать до 40 секунд.

Если бы у меня была возможность сделать все с нуля я бы возможно что-то придумал, а так у меня более 100 тыс записей, которые особенно не попереносишь как вздумается и приходится выкручиваться.
0
Заблокирован
14.02.2018, 20:23 10
Цитата Сообщение от kpevetko Посмотреть сообщение
Заковырки есть. Их не мало.
Ну что вам сказать - Сочувствую!
Бывает ...

И всё же:
01.
Прорвете индексируются-ли поля условий в запросе.

02.
Проверьте оптимальность функций используемых в запросе.

03.
Можно функции этим погонять ....
0
Мы один, давай на "ты"
3425 / 1304 / 314
Регистрация: 16.06.2016
Сообщений: 3,067
14.02.2018, 20:31 11
Цитата Сообщение от kpevetko Посмотреть сообщение
Вопрос в следующем, есть возможность сделать не то чтобы анимацию, но хотя бы всплывающее окно во время выполнения запроса?
Можно. Но в одном случае (не связано окно с запросом) на нём ничего не будет отображаться пока идёт запрос - поток один. В случае если связать окно с запросом, то запрос будет выполнятся ещё дольше, но выполнение будет отображаться..
0
Заблокирован
14.02.2018, 20:33 12
Цитата Сообщение от kpevetko Посмотреть сообщение
Кстати, по поводу заковырок я попробую пояснить. В общем задача у меня стояла следующая:
Спасибо за подробные пояснения, но это мимо!
Пример = Хорошо!
...
- "есть 3 основных массива данных"
не понятно
и- массивы обычно в RAM на уровне приложения.

- "Добавил в каждую таблицу по 1 полю где и прописал эту "принадлежность". Далее поясню зачем нужна была эта принадлежность. Суть её в том что в зависимости от принадлежности к той или иной странице, должна открываться форма с полями вмещающими всю информацию о данной записи. "
не понятно

И так далее...
Пример, с пояснениями, показал бы всё. Я так думаю ...
0
Мы один, давай на "ты"
3425 / 1304 / 314
Регистрация: 16.06.2016
Сообщений: 3,067
14.02.2018, 20:34 13
отсюда выводы

следует оптимизировать запросы
отказаться от всяких самописных и агрегирующих функций.
использовать (если возможно) другие методы поиска, например Seek
0
7 / 7 / 2
Регистрация: 25.10.2017
Сообщений: 90
15.02.2018, 06:41  [ТС] 14
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Спасибо за подробные пояснения, но это мимо!
Пример = Хорошо!
...
- "есть 3 основных массива данных"
не понятно
и- массивы обычно в RAM на уровне приложения.

- "Добавил в каждую таблицу по 1 полю где и прописал эту "принадлежность". Далее поясню зачем нужна была эта принадлежность. Суть её в том что в зависимости от принадлежности к той или иной странице, должна открываться форма с полями вмещающими всю информацию о данной записи. "
не понятно

И так далее...
Пример, с пояснениями, показал бы всё. Я так думаю ...
Пример сегодня выложу. Но вот что я подумал. Ситуация то не только в самой БД. Дело в том что когда все данные включая клиент с формами находится на локалке- все быстренько работает, буквально 1-2 секунды, а вот когда переношу на удаленный диск, то да- возникает это 40 секундное ожидание. Думаю дело в сети, но другой нет и не будет, поскольку филиалы разбросаны по федеральному округу. В общем поскольку я не думаю что есть способ это оптимизировать, я и спрашивал по поводу Прогрессбара.
0
7 / 7 / 2
Регистрация: 25.10.2017
Сообщений: 90
15.02.2018, 15:20  [ТС] 15
Вот пример, я вырезал из него много чего, но основу запросов оставил.
Вложения
Тип файла: rar Пример.rar (67.4 Кб, 9 просмотров)
0
Модератор
Эксперт MS Access
11979 / 4846 / 781
Регистрация: 07.08.2010
Сообщений: 14,203
Записей в блоге: 4
15.02.2018, 16:59 16
исходя из вашего примера
--сначала вы запросом union all объединяете старые-древние-кандидаты -расследования -инциденты
--затем ищете по фамилии или дате рождения
--затем просматриваете ту таблицу из которой документ

и сколько документов в таблицах(порядок , по 5000-10000-100000), которые при каждом запуске формы гоните по сети
в приложенной базе --только просмотр, корректировки нет

SQL
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
Private Sub knpka_Click()
Dim stDocName AS String
Dim stLinkCriteria AS String
 
IF Me.Поле268.Value = "Актуализация" THEN
stDocName = "frmSeeAktualizacia"
stLinkCriteria = "[НомерДеяния]=" & Me![Номер]
DoCmd.OpenForm stDocName, , , stLinkCriteria
ELSE
IF Me.Поле268.Value = "Расследования" THEN
stDocName = "frmSeeRassledovaniya"
stLinkCriteria = "[НомерРасследования]=" & Me![Номер]
DoCmd.OpenForm stDocName, , , stLinkCriteria
ELSE
IF Me.Поле268.Value = "Кандидаты" THEN
stDocName = "searchFormSee"
stLinkCriteria = "[Номер]=" & Me![Номер]
DoCmd.OpenForm stDocName, , , stLinkCriteria
END IF
END IF
END IF
END Sub
 
Private Sub Поиск_Click()
Dim strSearch AS String
Dim strText AS String
strText = Me.txtTest.Value
strSearch = "SELECT * from zprVarib where ((ФИО Like ""*" & strText & "*"") or (Дата Like ""*" & strText & "*"")) order by Конец"
Me.RecordSource = strSearch
END Sub
0
7 / 7 / 2
Регистрация: 25.10.2017
Сообщений: 90
15.02.2018, 17:41  [ТС] 17
Цитата Сообщение от shanemac51 Посмотреть сообщение
исходя из вашего примера
--сначала вы запросом union all объединяете старые-древние-кандидаты -расследования -инциденты
--затем ищете по фамилии или дате рождения
--затем просматриваете ту таблицу из которой документ

и сколько документов в таблицах(порядок , по 5000-10000-100000), которые при каждом запуске формы гоните по сети
в приложенной базе --только просмотр, корректировки нет

SQL
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
Private Sub knpka_Click()
Dim stDocName AS String
Dim stLinkCriteria AS String
 
IF Me.Поле268.Value = "Актуализация" THEN
stDocName = "frmSeeAktualizacia"
stLinkCriteria = "[НомерДеяния]=" & Me![Номер]
DoCmd.OpenForm stDocName, , , stLinkCriteria
ELSE
IF Me.Поле268.Value = "Расследования" THEN
stDocName = "frmSeeRassledovaniya"
stLinkCriteria = "[НомерРасследования]=" & Me![Номер]
DoCmd.OpenForm stDocName, , , stLinkCriteria
ELSE
IF Me.Поле268.Value = "Кандидаты" THEN
stDocName = "searchFormSee"
stLinkCriteria = "[Номер]=" & Me![Номер]
DoCmd.OpenForm stDocName, , , stLinkCriteria
END IF
END IF
END IF
END Sub
 
Private Sub Поиск_Click()
Dim strSearch AS String
Dim strText AS String
strText = Me.txtTest.Value
strSearch = "SELECT * from zprVarib where ((ФИО Like ""*" & strText & "*"") or (Дата Like ""*" & strText & "*"")) order by Конец"
Me.RecordSource = strSearch
END Sub
Да, только просмотр, корректировка в данных формах не предусмотрена. Так есть ли вариант оптимизации? Или все таки в любом случае запрос не будет выполнятся быстрее из-за сети? (опять же, как я говорил раньше, на рабочей станции выполняется запрос за секунды)
0
Модератор
Эксперт MS Access
11979 / 4846 / 781
Регистрация: 07.08.2010
Сообщений: 14,203
Записей в блоге: 4
15.02.2018, 17:48 18
Цитата Сообщение от kpevetko Посмотреть сообщение
и сколько документов в таблицах(порядок , по 5000-10000-100000),
сколько же или какой объем базы данных в мб
в базе только эти таблицы с данными или таблиц типа расследования может быть много типа
--расследования Тулы
+Алексина
+Ясной поляны
+Орла
+Курска
+ ....

ибо
Думаю дело в сети, но другой нет и не будет, поскольку филиалы разбросаны по федеральному округу
0
7 / 7 / 2
Регистрация: 25.10.2017
Сообщений: 90
15.02.2018, 18:04  [ТС] 19
Цитата Сообщение от shanemac51 Посмотреть сообщение
сколько же или какой объем базы данных в мб
в базе только эти таблицы с данными или таблиц типа расследования может быть много типа
--расследования Тулы
+Алексина
+Ясной поляны
+Орла
+Курска
+ ....

ибо
Расследования и Инциденты по 3 тысячи каждый. Сотрудники 85 тыс+, по объему 60 с небольшим мб
0
7 / 7 / 2
Регистрация: 25.10.2017
Сообщений: 90
18.02.2018, 18:26  [ТС] 20
Так что получается, невозможно сделать это? В смысле прогресс бар.
0
18.02.2018, 18:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.02.2018, 18:26
Помогаю со студенческими работами здесь

Ошибка при выполнении запроса
Добрый вечер! (под вечер голова уже перестала работать) Есть простенькая БД, в ней одна таблица...

Ошибка при выполнении запроса
Здравствуйте! Подскажите пожалуйста, где ошибка. На форме "RabFOS" выбираю цех (ceh) и запускаю...

Ошибка при выполнении запроса
Обычненький запрос.. select event_id, event from main where sport_id = 1 and event like...

Ошибка при выполнении запроса
Здравствуйте,помогите пожалуйста! Запускаю программу мне выдает такие ошибки. Помогите мне ее...

Ошибка при выполнении запроса
Всем доброго времени суток. В программе при выполнении SQL запроса выходит циклическая ошибка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru