Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
38 / 38 / 10
Регистрация: 08.03.2012
Сообщений: 236

Запрос в запросе

03.12.2012, 23:42. Показов 1504. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте форумчане!
Немного введу в курс дела. Есть база данных(см. вложения).
И мне нужно, чтобы при выборе накладной, у меня выводились не записи с таблицы "ЗаписьСписка", а Названия товаров и др. атрибуты с таблицы "Товары", решил сделать запрос в запросе.
Вот код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TmenuForm.FormShow(Sender: TObject);
begin
  DM.billStrQuery.Close;
  DM.billStrQuery.SQL.Clear;
  DM.billStrQuery.SQL.Add('SELECT * FROM ЗаписьСписка WHERE ЗаписьСписка.Код_Накладной = :IDbill;'); 
  DM.billStrQuery.Parameters.ParamByName('IDbill').Value := clientForm.DBEdit2.Text;
  DM.billStrQuery.Open;
end;
 
 
procedure TclientForm.DBGrid2CellClick(Column: TColumn);
begin
 DM.billQuery.Close;
  DM.billQuery.SQL.Clear;
  DM.billQuery.SQL.Add('SELECT Товары.Наименование, Товары.Тип, Товары.Ед, Товары.Цена FROM Товары INNER JOIN :Qu ON Товары.Код_Товара = :IDprod;');
  DM.billQuery.Parameters.ParamByName('Qu').Value := DM.billStrQuery.SQL.ToString();
  DM.billQuery.Parameters.ParamByName('IDprod').Value := DBEdit3.Text;
  DM.billQuery.Open;
end;
При событии клика, выдает ошибку: "Ошибка синтаксиса в предложении FROM"
Подскажите пожалуйста в чем дело.
В аксесе пробовал запустить запрос и он работает так как нужно, но в программе не работает.
Может это из-за
SQL
1
INNER JOIN
?
Спасибо!
Миниатюры
Запрос в запросе  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.12.2012, 23:42
Ответы с готовыми решениями:

при запросе вида «script.php?id=ЗАПРОС» выводить статью под номером «ЗАПРОС»
Написать php-скрипт, который при запросе вида «script.php?id=ЗАПРОС» будет выводить в браузер статью, хранящуюся в базе под номером...

Запрос в запросе
Приветствую. Такая ситуация. Есть таблица. в ней поля ФИО, дата рождения, возраст. Нужен запрос, чтобы выводились все юбиляры за...

Запрос в запросе
В процедуре AddToSyncTable вставляемый запрос выбивает ошибку, как мне сделать, чтобы он работал корректно function AddToSyncTable($sSQL)...

8
Заблокирован
04.12.2012, 00:13
Наверно не используй ParamByName, а пиши чистый запрос)))
У тебя бд mysql?
0
38 / 38 / 10
Регистрация: 08.03.2012
Сообщений: 236
04.12.2012, 01:33  [ТС]
Цитата Сообщение от Дамбылдор Посмотреть сообщение
Наверно не используй ParamByName, а пиши чистый запрос
А как это? У меня же первый запрос выводит данные в зависимости от которых будет выполняться и возвращать данные другой.

БД Access
0
71 / 71 / 7
Регистрация: 19.07.2011
Сообщений: 357
04.12.2012, 03:37
:Qu

а разве можно передавать имя таблицы в качестве параметра?
0
38 / 38 / 10
Регистрация: 08.03.2012
Сообщений: 236
04.12.2012, 07:50  [ТС]
zremas, :Qu - это не таблица, а запрос.
Delphi
1
DM.billQuery.Parameters.ParamByName('Qu').Value := DM.billStrQuery.SQL.ToString();
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
04.12.2012, 09:04
Мудрить - себе вредить:
Запрос, сформированный в конструкторе запроса в Аксессе и работающий в приложении:
Delphi
1
2
3
4
5
6
7
8
  DM.billQuery.Close;
  DM.billQuery.SQL.Text =
    'SELECT Товары.Наименование, Товары.Тип, Товары.Ед '+
    'FROM (ЗаписьСписка INNER JOIN Товары ON ЗаписьСписка.Код_Товара = Товары.Код_Товара) '+
      'INNER JOIN Накладная ON ЗаписьСписка.Код_Накладной = Накладная.Код_Накладной '+
    'where Накладная.Код_Накладной = :IDBill';
  DM.billQuery.Parameters.ParamByName('IDBill').Value := Edit3.Text;
  DM.billQuery.Open;
Подразумевается, что IDBill - это идентификатор накладной.
1
71 / 71 / 7
Регистрация: 19.07.2011
Сообщений: 357
04.12.2012, 11:14
Nike Jagger,
ну-ну, флаг в руки!
0
38 / 38 / 10
Регистрация: 08.03.2012
Сообщений: 236
04.12.2012, 15:25  [ТС]
zremas, ну чего сразу "ну-ну". Если я глупость запостил, можно же так и сказать и исправить, я же не претендую на звание супер-программиста.
0
71 / 71 / 7
Регистрация: 19.07.2011
Сообщений: 357
04.12.2012, 19:03
Значит, надо посмотреть в справочниках, как обходят такие случаи, когда надо динамически менять участников запроса. Народ тут пишет - формируй желаемый sql запрос на стороне клиента и передавай его в качестве параметра.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.12.2012, 19:03
Помогаю со студенческими работами здесь

Запрос в запросе
Добрый всем день.Вот запрос. $query=mysql_query("SELECT * FROM `menu`"); for($i=0;$i<mysql_num_rows($query);$i++){ ...

Запрос в запросе
Нужна помощь, всю голову сломал уже. суть задачи такая: SQL-запрос должен возвращает количество работников с фамилией Иванов/Иванова в...

Запрос в запросе
В программе нужно сделать примерно такой запрос: insert into SignIn(id,Login,Password) values ((select id from Info where...

Запрос insert в запросе select
Можно ли сделать такой запрос? SELECT id, (INSERT INTO wall_bought(wall, user) VALUES(wall.id, {$_REQUEST})) FROM wall ...

Как правильно составить запрос в запросе?
в таблице есть строки с id: id = 1 id = 2 id = 3 id = 4 id = 5 Как сделать, что бы выборка произошла сверху вниз от маленько...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru