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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.04.2012, 18:09
martyr99 martyr99 вне форума
Прохожий
 
Регистрация: 26.03.2012
Сообщения: 4
Репутация: 10
По умолчанию TQuery и TTable

Здравствуйте.
Очень нужна помощь по одному маленькому вопросу, который, как мне кажется, решается легко, но я уже запутался окончательно. Итак:
имеется компонент TTable, в редакторе которого создано 5 Lookup-полей, берущих значения из других таблиц; всё это отображается в DBGrid. В подчиненных таблицах имеются поля денежного типа. Соответственно, когда я выбираю значения из списков, мне нужно рассчитать общую сумму и вывести её в главную таблицу. Запрос я составил, и в SQLExplorer он выводит нужные значения, а вот "подружить" его с TTable я так и не могу.
Сделал вот так:
Код:
Table1.FieldByName('Cost').AsString:=Query7.Fields[0].Text;
но при этом результат запроса как будто не обновляется и во всех строках в поле Cost одно и то же значение. Пробовал и Query7.Clear писать вначале и заново прописывать запрос, но тогда вообще ничего не выводит. Как же сделать то, что я хочу в итоге получить?

Последний раз редактировалось martyr99, 28.04.2012 в 18:14.
Ответить с цитированием
  #2  
Старый 29.04.2012, 22:53
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Код:
Table1.FieldByName('Cost').AsString:=Query7.Fields[0].Value;
или
Код:
Table1.FieldByName('Cost').AsString:=Query7.Fields[0].AsString;
?
__________________
Google в помощь
Ответить с цитированием
  #3  
Старый 30.04.2012, 00:11
martyr99 martyr99 вне форума
Прохожий
 
Регистрация: 26.03.2012
Сообщения: 4
Репутация: 10
По умолчанию

Делал и с Value, и с AsString - результат тот же. В данный момент код выглядит вот так:
Код:
procedure TForm5.BitBtn5Click(Sender: TObject);
begin
Query7.SQL.Clear;
Query7.SQL.Add('SELECT (MB.Cost+CPU.Cost+RAM.Cost+VC.Cost+HDD.Cost) as Summa');
Query7.SQL.Add('FROM MB, CPU, RAM, VC, HDD, Comp');
Query7.SQL.Add('WHERE Comp.MB=MB.CodeMB');
Query7.SQL.Add('AND Comp.CPU=CPU.CodeCPU');
Query7.SQL.Add('AND Comp.RAM=RAM.CodeRAM');
Query7.SQL.Add('AND Comp.VC=VC.CodeVC');
Query7.SQL.Add('AND Comp.HDD=HDD.CodeHDD');
Query7.Open;
Table1.FieldByName('Cost').AsString:=Query7.Fields[0].AsString;
Table1.Post;
Query7.Close;
end;

И ещё вот какая деталь: при выборе другого значения из выпадающего списка сумма обновляется не по первому клику, а по второму. Что сие значит и как оно решается?
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter