Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,151
Записей в блоге: 3

ADO, FireDAC Создание структуры для запроса

26.04.2016, 15:41. Показов 1455. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго!
Узнал что в FireDac (а скорее всего так же и в ADO) можно создавать структуры запроса, что ускоряет обмен данными,а так же позволяет работать с разными типами БД, не изменяя запроса.

Типа было
SQL
1
SELECT * FROM users WHERE  name = AAA
А стало (примерно так, точно не знаю)

SQL
1
SELECT * [tip1] WHERE  [tip2]  = [tip3]
Ни кто не использовал, может кто знает как с таким работать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.04.2016, 15:41
Ответы с готовыми решениями:

Выполнение простого запроса PostgreSQL и FireDAC
Выполняю простой запрос по смене пароля у текущего пользователя, использую параметр. Если параметр не использовать, а просто указать...

Firedac: создание связи между таблицами
В общем и целом - начал юзать firemonkey и вот возник такой вопрос. Организую соединение с БД по старинке через adoconnection, подключаю...

Создание параметра ADO для хранимой проц
В хранимой процедуре на сервере параметр описан как : ... zakl_ NTEXT Что надо указать На VB : Set Prm =...

5
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
26.04.2016, 16:05
Цитата Сообщение от Dinkin Посмотреть сообщение
можно создавать структуры запроса, что ускоряет обмен данными
О каком обмене данными идет речь? Клиентская программа посылает на сервер запрос, сервер этот запрос выполняет и возвращает результат на клиента. Этот результат и есть обмен данными, но от текста запроса это никак не зависит.
В нормальных СУБД есть оптимизатор, который составляет план запроса. Если запрос работает медленнее, чем требуется, то можно попытаться изменить текст запроса. Это называется оптимизация запроса, но в общем случае штука непростая и всяко не решается какими-то скобочками. Там требуется изучение плана запроса, который строит оптимизатор, понимание принципов работы конкретной СУБД и проч. Это может влиять на скорость выполнения запроса, но не на обмен данными (передачу данных по сети).
Ну и конечно на скорость выполнения запроса влияет структура БД, но это уже другая история.
1
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,151
Записей в блоге: 3
26.04.2016, 16:22  [ТС]
Grossmeister, Спасибо за раскрытый ответ.

Под обменом данными я имел введу посылка самого запроса на сервер (Компонент TQuery его оптимизирует как то в независимо с какой БД работаем, он сам как надо сделает структуру запроса), а то есть :
1) К примеру есть запрос мего длинный, со всякими там джойнами и внутренними выборками, а TQuery, его оптимизирует и шлет на сервер
2) Другим плюсом является что в самом клиенте мы подставляем только сами переменные к уже готовому запросу, что уменьшает длину самого написания кода.
3) Главный плюс, что не важно с каким типом БД мы работаем, не надо подгонять запросы с MySQL к примеру на MSSQL,достаточно просто сменить провайдера,а TQuery сама уже преобразует запросы.

Как пример могу привести Entity Framework.

Добавлено через 3 минуты
Хотел добавить, что как то встречал в Блоге разработчика FireDac, примеры данной реализации, с замерами. Но к сожалению не придал тогда этому значения, а сейчас даже и блога этого найти не могу.
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
26.04.2016, 17:03
Цитата Сообщение от Dinkin
1) К примеру есть запрос мего длинный, со всякими там джойнами и внутренними выборками, а TQuery, его оптимизирует и шлет на сервер
Это слишком интеллектуально для компонента. Расскажу на примере Oracle, поскольку знаю его лучше всего.

Во-первых, в СУБД оптимизатор оптимизируют годами, если не десятилетиями. Т.е. это задача довольно сложная и отнюдь не для одного человека. И даже сейчас в том же Oracle оптимизатор порой ошибается.
Во-вторых, если какой-то запрос выполняется быстро на одной СУБД, не факт, что он будет работать быстро на другой. Поэтому невозможно оптимизировать запрос для разных СУБД, для этого надо знать ее особенности, иногда внутреннюю кухню, которую знают только в фирме-вендоре.
В-третьих, порой для оптимизации запроса надо иметь сведения о данных, насколько они распределены равномерно или нет. Для этого в СУБД существует сбор статистики по таблицам и индексам. И оптимизатор, составляя план запроса, использует эту статистику, т.е. сам выполняет запросы к БД (т.н. рекурсивные запросы).
1
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,151
Записей в блоге: 3
26.04.2016, 17:13  [ТС]
Grossmeister, Oracle это ваще страшилки, дело не имел с ним, но заочно им уже запугали
А по вопросу темы, в общем пока сам толком не знаю, типа "слышал звон....", но точно знаю что есть возможность хотя бы в простых запросах как то сделать универсальную форму, что бы хотя бы подходила и к MsSQL , так и для MySQl для FireDac .
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
26.04.2016, 17:17
Цитата Сообщение от Dinkin Посмотреть сообщение
Oracle это ваще страшилки
Это не страшилки, это просто высокопрофессиональный инструмент. При достаточном умении много чего позволяет сделать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.04.2016, 17:17
Помогаю со студенческими работами здесь

Слишком длинный текст для изменения в поле для запроса на создание таблицы
Приветствую Уважаемых пользователей эхотага! Помогите пожалуйста разрешить следующею проблемную ситуацию. Есть запрос на создание...

Создание условия для запроса
Всем доброго времени суток. Делаю лабораторную работу и встретился с проблемой при выполнении перекрестного запроса. В саму суть вник, но...

Создание SQL запроса для БД
Имеется 2БД с полями : 1)Платежи (Номер квитанции, Вид платежа, сумма платежа, дата плате- жа, код члена кооператива) 2)Члены...

Создание запроса для поиска
private void poisk_Click(object sender, EventArgs e) { int i = cbpoisk.SelectedIndex; string st =...

Создание сложного запроса для БД..
Объясните пожалуйста, что не так я делаю.. у меня есть бд "библиотека" - файл 123.xls.. Необходимо сформировать выборку, в которую...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3, Box2D, FreeType и SDL3_ttf из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru