|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|
Заключить запрос в функцию?25.10.2012, 15:45. Показов 865. Ответов 5
Метки нет (Все метки)
Господа, вот думается мне такая мысль, что мне часто приходится из своей программы обращаться к своей же маленькой базе данных, и из-за этого количество кода растет пропорционально количеству обращений. Вот может рациональнее создать какую-нибудь универсальную функцию, в которую поместить сам запрос, и ее уже каждый раз вызывать? Что-то типа:
тип::возвращаемые значения имя_функции(требуемые поля таблицы и операция над ними) { если(операция SELECT) { выбор из таблицы требуемых полей } если(операция UPDATE) { обновление тех же полей таблицы } } А когда надо, к примеру, в определенный момент узнать что-то из базы просто вызвать функцию и передать в нее тип запроса и желаемые столбцы. Все это соответственно в одном потоке и одновременное обращение к базе так же исключить. Добавлено через 46 минут Ни у кого никаких мыслей нет?
0
|
|
| 25.10.2012, 15:45 | |
|
Ответы с готовыми решениями:
5
Заключить подстроку в кавычки
Вероятность заключить контракт |
| 26.10.2012, 06:23 | |
|
код у тебя у меньшится но не намного, т.к. все равно придется указывать поля, таблицы, условия. если только не применять простые селекты, например: select * from myTable. либо если ты пользуешься одним и тем же селектом в разных местах, то можно и в отделную функцию.
0
|
|
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
||||||
| 26.10.2012, 10:28 [ТС] | ||||||
|
Мне это видится примерно так:
1) Какого типа будут возвращаемые данные? 2) Как сделать, чтобы возвращать можно было несколько значений, строк? Есть у меня мысль сделать в теле программы бесконечный цикл и вызывать в нем функцию, а в самой функции считывать построчно из базы с помощью sqlite3_step. А когда считается последняя строка, функция вернет какой-нибудь спецсимвол, означающий выход из цикла. То есть глобально я хочу все SQL-ные дела полностью запихать в функцию(ии).
0
|
||||||
|
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
|
|
| 26.10.2012, 10:38 | |
|
SELECT-ы из одной таблицы бывают довольно редко. В большинстве случаев идет соединение N-числа таблиц. Плюс в WHERE м.б. довольно много условий. Плюс м.б. всякие ORDER BY, GROUP BY, HAVING.
Плюс может не просто выбираться какое-то поле, а с ним могут производиться разные манипуляции. Плюс могут быть разные агрегатные функции. И т.д. и т.п. Так что, ИМХО, тухлое это дело - запихать все в одну функцию
0
|
|
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|
| 26.10.2012, 11:10 [ТС] | |
|
Grossmeister, не. Не все так сурьезно. ) Я не хочу писать глобальную универсальную суперфункцию. А только локально к своей программе. Я знаю сколько у меня таблиц, сколько в них параметров.
К примеру: есть у меня две кнопки, и по нажатию на каждую происходит выборка из базы значения равного имени кнопки. SELECT * FROM ... WHERE some = Button1.Name; И соответственно Button2.Name во второй кнопке. И вот чтобы не писать в каждой кнопке полноценный запрос (это формирование строки запроса, сама выборка...<-много кода) разместить в обработчике у каждой функцию, и в нее одной строкой передавать параметры. Типа: ButtonClick{MyFunc(INSERT, Table1, NULL, NULL, Button1.Name, NULL);}
0
|
|
| 26.10.2012, 15:04 | ||
|
0
|
||
| 26.10.2012, 15:04 | |
|
Помогаю со студенческими работами здесь
6
Каждое слово заключить в кавычки
Третье слово в предложении заключить в скобки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|