|
Marx
|
||||||
Помогите оптимизировать алгоритм31.12.2007, 23:14. Показов 912. Ответов 7
Метки нет (Все метки)
Помогите, пожалуйста, оптимизировать алгоритм. Задача следующая.
Есть 5 форм, например, с 10 текстбоксами в каждой форме. Необходимо построить динамически SQL запрос на выборку данных из базы из полей, соответствующих содержимому непустых текстбоксов форм. я реализовал это через множество условий if и на середине задачи появилась ошибка procedure too long.
|
||||||
| 31.12.2007, 23:14 | |
|
Ответы с готовыми решениями:
7
Оптимизировать алгоритм Оптимизировать алгоритм Помогите оптимизировать |
|
Marx
|
||||||
| 31.12.2007, 23:17 | ||||||
|
Ошибся в программе
|
||||||
|
0 / 0 / 0
Регистрация: 02.09.2007
Сообщений: 209
|
|
| 31.12.2007, 23:30 | |
|
Для таких задач лучше создать одну общую функцию, которая будет формировать строку WHERE для запроса. И вызывай эту функцию из каждого поля в событии AfterUpdate, или непосредственно перед вызовом самого запроса. Тогда в функции можно использовать For ... Each ...
Таким образом, ты оградишь себя от возможных ошибок, программа будет более читабельной и ее будет легче модифицировать.
0
|
|
|
Marx
|
|
| 31.12.2007, 23:54 | |
|
Смысл алгоритма в следующем. По нажатию кнопки поиск на одной из форм, алгоритм просматривает все текстбоксы всех форм, и если, текущий текстбокс не пустой и все предыдущие пустые, то form5.text10.text <> '' and ...and form3.text5.text = '' and ... and form1.text1.text = '' then String = String & 'Pole10 = ' ''' & form5.text10.text & '''
и если, соответственно, предыдущие текстбоксы были непустыми, то if form5.text10.text <> '' then String = String & ' and Pole1=' ''' & form5.text10.text & ''' события AfterUpdate применительно к тестбоксу я не нашел. Можно простенький примерчик? Я попытался разбить все if по функциям или процедурам, соответственно для каждой формы своя функция или процедура с проверками if для каждого текстбока текущей формы. Но переменная, хранящая запрос String = 'SELECT * FROM Base WHERE ' нормально передается в функцию или процедуру, далее добавляются еще несколько параметров запроса, но возвращается в переменной только те изменения, которые были сделаны внутри функции или процедуры, т.е. теряется 'SELECT * FROM Base WHERE '. |
|
|
0 / 0 / 0
Регистрация: 02.09.2007
Сообщений: 209
|
||||||
| 01.01.2008, 00:33 | ||||||
|
Поместите етот код в форму на каторой нашодится кнопка с которой вы запускаете запрос
Надеюсь помог. Успехов.
0
|
||||||
|
Marx
|
|
| 06.01.2008, 10:22 | |
|
Как for each TB берет текстбоксы. У меня 39 текстбоксов, перебор их такой 39, 26, 18, 17, 8, 4 - ошибка 13. Как заставить цикл перебирать все текстбоксы поледовательно с первого.
Добавились чекбоксы и комбобоксы, будет ли для них работать этот же алгоритм? кстати вот тут надо писать так Temp = Temp & TB.Name & ' = '' & Value & ''' |
|
|
OS
|
||||||
| 06.01.2008, 12:43 | ||||||
|
||||||
|
Marx
|
||
| 24.01.2008, 01:08 | ||
|
Все отлично работает, большое спасибо!
|
||
| 24.01.2008, 01:08 | |
|
Помогаю со студенческими работами здесь
8
Помогите оптимизировать сайт Помогите оптимизировать сайт Помогите оптимизировать код Помогите оптимизировать страницу Помогите оптимизировать сайт Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во
всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
|