Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме 15-35 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2021, 09:16   #1
Astrola
Пользователь
 
Регистрация: 04.09.2018
Сообщений: 16
По умолчанию Оптимизация операций в Делфи с SQLite

Делфи 10.3, БД SQLite

Возможно ли вынести SQL операции по работе с БД (запросить, добавить, удалить, изменить) в отдельный модуль и вызывать их при необходимости с передачей параметров и возвратом результата в листбокс, стринггрид, чтобы каждый раз при запросе к БД не писать код по созданию соединений и запросов с очисткой по завершению.
Как это лучше всего сделать. Поделитесь примерами, если не сложно.
Astrola вне форума Ответить с цитированием
Старый 29.09.2021, 10:27   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,307
По умолчанию

Цитата:
чтобы каждый раз при запросе к БД не писать код по созданию соединений и запросов с очисткой по завершению.
TDataModule
TConnection -- ОДНО соединение
TQuery1 -- настроить соединение на указанное выше соединение(TConnection)
TQuery2
...
TQueryN -- ровно столько разных сколько предполагается разных запросов к БД.
написать все запросы заранее и НЕ стирать их.
использовать параметризацию запросов.
все действия программы(КОД) должны заключаться в
1. выборе нужного запроса
2. задании параметров выбранного запроса
3. выполнении (для изменений в БД) или закрытии/открытии НД (TQuery...)

4. для "невидимости" самих запросов извне объявляются и пишутся методы(процедуры/функции)
получения "установочных данных" (параметров выполняемых запросов) и возврата необходимых данных (заполнения чего-либо например TListBox.Items).
Изображения
Тип файла: jpg 00.JPG (50.6 Кб, 1 просмотров)
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 29.09.2021, 12:12   #3
Astrola
Пользователь
 
Регистрация: 04.09.2018
Сообщений: 16
По умолчанию

Можно пример каким образом передавать не текст, а параметры в процедуре к примеру для записи:
Код:
Query.SQL.Text:= 'INSERT INTO viddil (name_org, name_otdel, id_otdel) VALUES (:name_org, :name_otdel, :id_otdel)';
Astrola вне форума Ответить с цитированием
Старый 29.09.2021, 14:20   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,307
По умолчанию

https://programmersforum.ru/showpost...17&postcount=5
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно запилить sqlite код в делфи xe 10 smail-2017@list.ru Помощь студентам 0 27.05.2019 21:58
Оптимизация операций с массивами salder Microsoft Office Excel 1 13.06.2012 23:45
Оптимизация операций с матрицами Format C: Общие вопросы Delphi 1 12.05.2012 09:00
SQLite PinkPink Qt и кроссплатформенное программирование С/С++ 3 09.04.2012 23:19
SQLite Dr.Badnezz БД в Delphi 2 24.03.2010 09:46