Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.03.2011, 12:34
kastawow kastawow вне форума
Прохожий
 
Регистрация: 27.03.2011
Сообщения: 3
Репутация: 10
По умолчанию SQL запрос

Всем привет, в SQL я совсем туп туп и совсем забыл как на учебе мы делали запросы.
В общем у меня есть таблица блюда(в ней есть столбец 'Выход(грамм)'), вот мне нужно чтобы в таблице ингредиенты_блюда(в ней есть столбец 'количество(грамм)') считались все кол-ва ингредиентов и заносились автоматически в таблицу блюда в столбец 'Выход(грамм)'.
Вот сама база данных, если вы не поняли что мне надо сделать.
Вложения
Тип файла: rar bd.rar (22.4 Кбайт, 3 просмотров)
Ответить с цитированием
  #2  
Старый 27.03.2011, 13:34
kastawow kastawow вне форума
Прохожий
 
Регистрация: 27.03.2011
Сообщения: 3
Репутация: 10
По умолчанию

и мне надо sql запрос сделать в delphi, у меня есть adotable и datasource
Ответить с цитированием
  #3  
Старый 27.03.2011, 14:10
kastawow kastawow вне форума
Прохожий
 
Регистрация: 27.03.2011
Сообщения: 3
Репутация: 10
По умолчанию

Код:
adoquery1.SQL.Add('select ингредиенты_блюда.ID_блюда, SUM(ингредиенты_блюда.Количество)');
adoquery1.SQL.Add('from блюда.Выход');
adoquery1.SQL.Add('GROUP BY ингредиенты_блюда.ID_блюда ');
так нифига не получается что я не так написал?

Последний раз редактировалось kastawow, 27.03.2011 в 14:13.
Ответить с цитированием
  #4  
Старый 29.03.2011, 09:44
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Скорее всего вам так надо:
Код:
select блюда.ID_блюда, SUM(ингредиенты_блюда.Количество)
from блюда
inner join ингредиенты_блюда on ингредиенты_блюда.ID_блюда=блюда.ID_блюда
GROUP BY блюда.ID_блюда
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 07.04.2011, 19:22
iegrec iegrec вне форума
Прохожий
 
Регистрация: 07.01.2011
Сообщения: 34
Репутация: 10
По умолчанию

Здравствуйте.! Делаю вот такой запрос Select rm.id,rm.d,rm.fio,rm.nom,rm.pk,rm.m,rm.ma,rm.k,rm. t_f,rm.pf,rm.km,rm.s
From rm as rm
where rm.fio=:'w'

запрос выполняется в AdoQuery.SQL.string.

вот код....на событие.

DBGrid1.DataSource:=DM4.DS_test;
DM4.ADOQuery_test.Active:=false;
DM4.adoquery_test.Parameters.ParamByName('w').Valu e := edit6.text;
DM4.ADOQuery_test.Active:=true;

и я получаю..даные..только после того как только полностью.строка совпадет..с данными в параметре...А МНЕ НУЖНО ЧТО БЫ У МЕНЯ ВЫВОДИЛИСЬ ДЫНЫЕ СРАЗУ ПОСЛЕ ВЫВОДА ПЕРВОГО СИМВОЛА. КАК ЭТО СДЕЛАТЬ ПОДСКАЖИТЕ...ПОЖАЛУЙСТА.!!!
Ответить с цитированием
  #6  
Старый 07.04.2011, 19:37
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Во первых параметр в запросе описывается без кавычек.
Во вторых, если вы хотите искать по части значения то надо использовать Like. В итоге будет так:
Код:
Select rm.id,rm.d,rm.fio,rm.nom,rm.pk,rm.m,rm.ma,rm.k,rm. t_f,rm.pf,rm.km,rm.s
From rm as rm
where rm.fio like :w
Ну и в третьих, чтобы выборка происходила в процессе ввода условия запрос надо запускать в событии OnChange для edit6
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #7  
Старый 08.04.2011, 06:32
iegrec iegrec вне форума
Прохожий
 
Регистрация: 07.01.2011
Сообщения: 34
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
Ну и в третьих, чтобы выборка происходила в процессе ввода условия запрос надо запускать в событии OnChange для edit6

Спасибо...Я так и делаю....

а код попробую....потом отпишусь.
Ответить с цитированием
  #8  
Старый 08.04.2011, 07:55
iegrec iegrec вне форума
Прохожий
 
Регистрация: 07.01.2011
Сообщения: 34
Репутация: 10
По умолчанию

Что то не получается ...не выводит даных..по первому символу...

делаю.

procedure TForm_obspisok.Edit1Change(Sender: TObject);
begin

DBGrid1.DataSource:=DM4.DS_ObSP;
DM4.ADOQuery_ObSP.Active:=false;
DM4.ADOQuery_ObSP.Parameters.ParamByName('w').Valu e:=Edit1.Text;
DM4.ADOQuery_ObSP.Active:=True;
DM4.ADOQuery_ObSP.Last;

end;

Select o.id, o.nam From obspisok as o
where o.nam like :w
Ответить с цитированием
  #9  
Старый 08.04.2011, 09:23
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Код:
DM4.ADOQuery_ObSP.Parameters.ParamByName('w').AsString := Edit1.Text + '%';
Ответить с цитированием
  #10  
Старый 08.04.2011, 11:01
iegrec iegrec вне форума
Прохожий
 
Регистрация: 07.01.2011
Сообщения: 34
Репутация: 10
По умолчанию

Цитата:
Сообщение от TOJluK
Код:
DM4.ADOQuery_ObSP.Parameters.ParamByName('w').AsString := Edit1.Text + '%';
'%'; что это означает...??? пожалуйста подскажи.

пишет ошибку
[DCC Error] obspisok.pas(41): E2003 Undeclared identifier: 'AsString'

Последний раз редактировалось iegrec, 08.04.2011 в 11:09.
Ответить с цитированием
  #11  
Старый 08.04.2011, 11:16
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

С ADO давно не работаю, значит используй VALUE вместо AsString, возможно даже придется так:
Код:
DM4.ADOQuery_ObSP.Parameters.ParamByName('w').Value:= QuotedSTR(Edit1.Text + '%');
% - любые символы
Ответить с цитированием
  #12  
Старый 08.04.2011, 11:43
iegrec iegrec вне форума
Прохожий
 
Регистрация: 07.01.2011
Сообщения: 34
Репутация: 10
По умолчанию

Непойму как но заработало..
DM4.ADOQuery_ObSP.Parameters.ParamByName('dsp').Va lue :=Edit1.Text + '%';

Спасибо...вам...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:06.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter