Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
4 / 4 / 1
Регистрация: 24.06.2013
Сообщений: 62

Выполнение запроса

31.03.2017, 23:13. Показов 2519. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
В общем есть БД Access. В ней есть таблица и запрос.
В Delphi на форме есть DataSource, ADOQuery, ADOConnection и DBGrid.

Delphi обращается к запросу в Access следующим образом:

Delphi
1
2
Form.ADOQuery.SQL.Text:='Execute query2';
Form.ADOQuery.Open;
Если запрос в Access такой, то в DBGrid всё подгружается как надо:
SQL
1
2
SELECT employee.C1 AS ФИО, employee.C2 AS Статус, employee.C3 AS Примечания
FROM employee;
А если такой, то не подгружается ничего... при этом если в DBGrid добавить новую запись, то она в БД появится...
SQL
1
2
3
SELECT employee.C1 AS ФИО, employee.C2 AS Статус, employee.C3 AS Примечания
FROM employee
WHERE employee.C1 LIKE "*";
в Access оба запроса выполняются одинаково.

Добавлено через 17 минут
дополнение.
Такая конструкция запроса тоже отрабатывает нормально.
SQL
1
2
3
SELECT employee.C1 AS ФИО, employee.C2 AS Статус, employee.C3 AS Примечания
FROM employee
WHERE employee.C1 = "Иванов";
Чем Delphi "Like" не угодил?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.03.2017, 23:13
Ответы с готовыми решениями:

1с выполнение запроса
Помогите пожалуйста выполнить запрос, делаю так: Var doc:olevariant; QResult:olevariant; sel_res,res: variant; ...

Выполнение запроса
Доброго времени суток. Есть запрос в БД с помощью компонентов MyDac: var unitName, unitLoc: string; ... ...

Выполнение запроса sql
При экспорте или при выполнение запроса, если имя фотографии повторяется(поле ph.naimphoto), его не выводит. В коде вроде этого не...

7
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
01.04.2017, 00:13
Лучший ответ Сообщение было отмечено Anton Kadnikov как решение

Решение

Цитата Сообщение от Anton Kadnikov Посмотреть сообщение
Чем Delphi "Like" не угодил?
В АДО символ "звездочка" не проходит, вместо этого нужно использовать символ "процент" (%)
1
4 / 4 / 1
Регистрация: 24.06.2013
Сообщений: 62
01.04.2017, 03:24  [ТС]
Цитата Сообщение от Скандербег Посмотреть сообщение
В АДО символ "звездочка" не проходит, вместо этого нужно использовать символ "процент" (%)
Спасибо, со * и % я уже разобрался. Одно только не понял. ADO ведь в данном случае не текст запроса со * отсылало, а обращалось к хранимому запросу, который возвращает набор данных (например названия полей в DBGRID передались, а сами данные нет).

Или я чего-то в технологии не понимаю?
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
01.04.2017, 04:39
Цитата Сообщение от Anton Kadnikov Посмотреть сообщение
который возвращает набор данных (например названия полей в DBGRID передались, а сами данные нет
это возвращался пустой набор, такой же, как если бы вы написали
SQL
1
WHERE employee.C1 = "ИИИИванов"
и такой записи не нашлось

Цитата Сообщение от Anton Kadnikov Посмотреть сообщение
ADO ведь в данном случае не текст запроса со * отсылало, а обращалось к хранимому запросу, который возвращает набор данных
хранимый запрос хранит текс запроса, а не данные
1
4 / 4 / 1
Регистрация: 24.06.2013
Сообщений: 62
01.04.2017, 05:13  [ТС]
Цитата Сообщение от YuryK Посмотреть сообщение
хранимый запрос хранит текс запроса, а не данные
Вот тут не понял... логики...
Понимаю когда текст запроса передаётся из приложения в БД по средствам ADO.
Но разве в случае с хранимым запросом ADO его текст обрабатывает?
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
01.04.2017, 06:26
Цитата Сообщение от Anton Kadnikov Посмотреть сообщение
текст запроса передаётся из приложения в БД
В Ассеss? Кому он там передается? Это бинарный файл, лежащий на вашем диске.

Добавлено через 17 минут
Вероятно, что или сам аксесс выполняет какую-то обработку текста запроса перед его выполнением, или используются разные библиотеки самим аксом и теми, что используются ADO. или разные функции используются из одной и той же библиотеки.

Вот вы запрос используете в стиле ХП 'Execute query2'. А я, например, так бы даже и не подумал, написал бы 'SELECT * FROM query2 '. А что делает Aкс для открытия запроса query2 мне, например, не ведомо
1
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
01.04.2017, 08:56
Прав YuryK, к зпросу в Акссессе надо обращаться как к обычной таблице, используя SELECT.
1
4 / 4 / 1
Регистрация: 24.06.2013
Сообщений: 62
01.04.2017, 12:19  [ТС]
Цитата Сообщение от YuryK Посмотреть сообщение
Вот вы запрос используете в стиле ХП 'Execute query2'. А я, например, так бы даже и не подумал, написал бы 'SELECT * FROM query2 '. А что делает Aкс для открытия запроса query2 мне, например, не ведомо
Пытался сделать и так, но в другом проекте, почему-то не удалось передать параметры в запрос. С "Execute" проблем не возникло.
По аналогии с ExecSQL думал, что обращение к запросу "Execute" не возвращает данные, на практике оказалось что очень даже возвращает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.04.2017, 12:19
Помогаю со студенческими работами здесь

TIBDataSet выполнение запроса
Помогите, пожалуйста, вопрос чрезвычайно нубовый, делфи не использовала совсем. Есть примерно такой код: Fqry: TIBDataSet; ...

Выполнение sql запроса
Доброго времени суток! Проблема в следующем: у меня есть грид, в котором отражены данные о владельцах автомобилей. Данные хранятся в субд...

Как прервать выполнение запроса?
Пишу на Delphi+ADO+MDB база. Есть компонент ADOQuery. В коде запускаю: ADOQuery1.Active = true; Если запрос очень длинный, как...

Выполнение сложного запроса в ADOQuery
Хочу выполнить запрос fmMain.ADODelDel.SQL.Text:='delete from posts where id_pr in (select id_pr where status=''удален'')'; ...

Выполнение запроса с использованием TEdit
Я только пробую силы. Пытаюсь сделать выборку из 2 таблиц. Надо ввести Фамилию автора в TEdit и в гриде должны отобразиться все книги...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru