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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.03.2016, 23:04
kucher kucher вне форума
Прохожий
 
Регистрация: 16.09.2015
Сообщения: 15
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию MS Access Расчёт значений в БД

Здравствуйте уважаемые форумчане!
есть БД вот её таблицы (приложение 1 2 )
вот так выглядит БД в DELPHI (приложение 3)
использовал здесь компоненты DBedit1

как лучше рассчитать стоимость исходя из занесённых значений (вида топлива(его цена за 1 литр),количества топлива)
и результат занести в dbedit на форме (а он в свою очередь передаст в базу)

То есть нужно

стоимость = цена за один литр (в зависимости от вида топлива) * (количество данного топлива (литров))

я пробовал через SQL (только вот не знаю что куда заносить)
Код:
SELECT CENA_T_O
FROM TOPLIVO, Zakazi
WHERE (Zakazi.CENA_T_O=((Zakazi.KOL) * (TOPLIVO.CENA)));
Изображения
Тип файла: png 1.png (5.3 Кбайт, 4 просмотров)
Тип файла: png 2.png (6.2 Кбайт, 3 просмотров)
Тип файла: png 3.png (5.8 Кбайт, 3 просмотров)
Ответить с цитированием
  #2  
Старый 13.03.2016, 23:59
kucher kucher вне форума
Прохожий
 
Регистрация: 16.09.2015
Сообщения: 15
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Почти сделал! КАК ЗАНЕСТИ ЗНАЧЕНИЕ В ТАБЛИЦУ ?
на 7ой строчке выдаёт ошибку
(приложение 4)
Код:
procedure TfzakaziMain.Button2Click(Sender: TObject);
var i,j,m,cenaO:integer;
cena,kol:string;
begin
j:=2;//kol
m:=3;//cena_o
for i:=1 to DBGrid1.DataSource.DataSet.RecordCount do begin
DBGrid1.DataSource.DataSet.Next;
end;
kol :=(DBEdit1.DataSource.DataSet.Fields[j].AsString);
cena:=(DBEdit1.DataSource.DataSet.Fields[m].AsString);
cenaO:=strtoint(kol)*strtoint(cena);
label7.Caption:=inttostr(cenaO);
DBEdit1.DataSource.DataSet.Fields[m].AsString:=label7.Caption;
end;
Скажите может можно сделать как то проще?
Изображения
Тип файла: png 4.png (11.7 Кбайт, 4 просмотров)
Ответить с цитированием
  #3  
Старый 14.03.2016, 17:06
kucher kucher вне форума
Прохожий
 
Регистрация: 16.09.2015
Сообщения: 15
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Скажите МБ можно как то через SQL update ?
Ответить с цитированием
  #4  
Старый 14.03.2016, 17:37
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Ну тебе же пишут, что таблица не в режиме добавления (insert) или изменения (edit). Нужно ее в этот режим перевести, записать значение и потом подтвердить запись.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
Этот пользователь сказал Спасибо Aristarh Dark за это полезное сообщение:
kucher (14.03.2016)
  #5  
Старый 14.03.2016, 20:46
kucher kucher вне форума
Прохожий
 
Регистрация: 16.09.2015
Сообщения: 15
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

проблему решил добавлением ТАБЛИЦА.EDIT;
Ответить с цитированием
  #6  
Старый 14.03.2016, 20:51
kucher kucher вне форума
Прохожий
 
Регистрация: 16.09.2015
Сообщения: 15
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

скажите а что это за ошибка??? (приложение 5)
и с чем она может быть связана??
возникла после добавления полей в таблице, а потом я пробовал занести данные в это только что созданные поля
Изображения
Тип файла: png 5.png (13.3 Кбайт, 3 просмотров)
Ответить с цитированием
  #7  
Старый 14.03.2016, 21:46
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Причин может быть довольно много, но в вашем случае я подозреваю, что либо нет ключевого поля в таблице, либо у вас выборка из нескольких таблиц.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 14.03.2016 в 21:48.
Ответить с цитированием
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение:
kucher (14.03.2016)
  #8  
Старый 14.03.2016, 21:49
kucher kucher вне форума
Прохожий
 
Регистрация: 16.09.2015
Сообщения: 15
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

в таблице которая в MS Access есть ключевые поля!
но я из сделал не видимыми в DBGRID
Ответить с цитированием
  #9  
Старый 15.03.2016, 21:06
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Если вы работаете с запросом в начале темы, то это как раз нередактируемый запрос. Без специальных настроек в него нельзя ничего добавлять т.к. это смешанный набор из двух таблиц.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter