0 / 0 / 0
Регистрация: 13.04.2016
Сообщений: 36
1

Обработка данных по базе Delphi

17.05.2018, 18:47. Показов 1952. Ответов 8

Author24 — интернет-сервис помощи студентам
Я новенький, особо не разбираюсь, очень нуждаюсь в совете опытного человека.
Подскажите мне, пожалуйста, каким способом лучше (проще быстрее) проделать арифметические операции с числами из базы Access с последующим выводом.
Есть 4 таблицы связаны ключом один ко многим.
Как взять , к примеру, один столбец из 1ой таблицы, сложить со столбцом из 2ой таблицы, разделить сумму на столбец из 3й таблицы и записать в 4ую таблицу результат?
В программе получается очень много формул со значениями из разных таблиц.
Я понимаю что это скорее всего SQL-запрос (а не перевод в таблицу Excel, как я думал вначале)
но абсолютно не знаю SQL
--------------------------------------------------------------------------------------------------
- Где описать такой SQL-запрос ( в программe Delphi или в самой базе Access)
- Куда пишеться запрос.
- Можно ли такие вычисления произвести обойдя SQL?
---------------------------------------------------------------------------------------------------
Вот скриншот формы в которую ввожу значения - записываются в разные таблицы.
на вывод будет другая форма, куда выводятся уже подсчитанные значения
Обработка данных по базе Delphi
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.05.2018, 18:47
Ответы с готовыми решениями:

Delphi. Поиск суммы в базе данных (Delphi)
Здравствуйте. На Delphi нужно создать базу данных со столбцами Товар, Сумма за единицу и т.д.......

Обработка и сохранение Данных в Базе Данных
У меня несколько вопросов: 1) Можно ли делать так как я показал на скрине, при нажатии на кнопку,...

Обработка неправильного обращения к базе данных
При подключении к базе данных проверяю наличие соединения и при его отсутствии хотел бы выйти из...

Обработка ошибки подключения к базе данных Access
Доброго времени суток. В своей программе подключаюсь к базе данных Access через компонент...

8
5777 / 4520 / 1430
Регистрация: 14.04.2014
Сообщений: 20,143
Записей в блоге: 20
17.05.2018, 19:32 2
аксесс это хранилище данных
делфи - это среда разработки вашей программы
если вы пишете запрос, правильно сначала отладить его в аксессе, а потом вставлять в делфи, где он будет использоваться

ваш сценарий в общем виде может исполняться как прямо в запросе, так и в программе, когда все данные вы вытаищте на клиент

Цитата Сообщение от me_egoorr Посмотреть сообщение
Куда пишеться запрос.
вопрос насторожил
сначала конечно, выбесил мягким знаком, а потом заставил задуматься
если вы не знаете, как выполняются запросы в программе, как вы работаете с БД в Делфи??
поиск - выполнение SQL запроса в delphi
100500 результатов
вот даже видео. автора хочется задушить за манеру подачи, но SQL запрос выполняется
https://www.youtube.com/watch?v=9lciEe5nMQA
1
0 / 0 / 0
Регистрация: 13.04.2016
Сообщений: 36
17.05.2018, 19:43  [ТС] 3
Я понимаю ваше негодование, и массу литературы за сегодня перечитал и видео посмотрел. Жаль не нашёл подходящего шаблона SQL .
Основной вопрос остался остался без инфы, как может выглядеть шаблон запроса для такого случая.
И можно ли в этой ситуации обойти использование SQL-запроса.
0
5777 / 4520 / 1430
Регистрация: 14.04.2014
Сообщений: 20,143
Записей в блоге: 20
17.05.2018, 22:34 4
шаблон запроса для ЛЮБОГО случая
SQL
1
2
3
4
SELECТ список полей
FROM таблица
JOIN другая таблица
WHERE условие отбора
ответ "вообще", потому что вопрос задан "вообще"
если будут конкретные вопросы, пишите ...
1
0 / 0 / 0
Регистрация: 13.04.2016
Сообщений: 36
17.05.2018, 22:38  [ТС] 5
Вот так вопросы задавались, жаль, прочитаны между строк
--------------------------------------------------------------
Как взять , к примеру, один столбец из 1ой таблицы,
сложить со столбцом из 2ой таблицы,
разделить сумму на столбец из 3й таблицы
и записать в 4ую таблицу результат?
Основной вопрос остался остался без инфы, как может выглядеть шаблон запроса для такого случая.
И можно ли в этой ситуации обойти использование SQL-запроса.
0
5777 / 4520 / 1430
Регистрация: 14.04.2014
Сообщений: 20,143
Записей в блоге: 20
17.05.2018, 23:09 6
Лучший ответ Сообщение было отмечено me_egoorr как решение

Решение

точно. как я сразу не понял, это же новое слово в программинге
запрос в базу теперь можно делать, не зная названия ни таблиц, ни полей, ни условий связи между ними!
красота!
я сделяль!! принимай, нащальника!

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
q1.SQL.Text:='SELECT (T1.FIELD1 + T2.FIELD2)/T3.FIELD18 AS R '+
'FROM TABLE1 T1 '+
'JOIN TABLE2 T2 ON (t1.FIELD2=T2.FIELD5) '+
'JOIN TABLE3 T3 ON (t2.FIELD5=T3.FIELD7) '+
'where T1.FIELD_FF = ''НАКОНЕЦ-ТО'' ';
q1.Open;
ddd:=q1.FieldByName('R').AsFloat;
//особенно доставляет ЗАПИСАТЬ В 4УЮ ТАБЛИЦУ РЕЗУЛЬТАТ
// то что в запросе может быть несколько строк, никого не волнует ессно
q2.SQL.Text:='INSERT INTO TABLE4 (FIELD_RESULTAT) values (:RESULTAT)';
q2.ParamByName('RESULTAT').AsFloat := ddd;
q2.ExecSQL;
сложиль, поделиль, втсавиль
1
0 / 0 / 0
Регистрация: 13.04.2016
Сообщений: 36
19.05.2018, 16:59  [ТС] 7
krapotkin, Добрый день!
Посмотрел ваш код, почитал статьи, посмотрел видео по работе с SQL...
И возникли новые вопросы
Подскажите мне, пожалуйста, какой всё-же компонент использовать за обработки sql.

Вот блок данных:
DataConection ---> ADOTable (9штук) ---> DataSourse (9штук)
вот такие компоненты для работы с данными
- Вопрос в том какой мне теперь компонент использовать (новый или старый) для ввода Sql-запросов.
me_egoorr на форуме
Миниатюры
Обработка данных по базе Delphi  
0
5393 / 4321 / 1060
Регистрация: 29.08.2013
Сообщений: 27,128
Записей в блоге: 3
19.05.2018, 17:01 8
использовать 1 connection и 1 query
для вывода данных использовать Stringgrid или ListView
1
5777 / 4520 / 1430
Регистрация: 14.04.2014
Сообщений: 20,143
Записей в блоге: 20
19.05.2018, 19:13 9
Лучший ответ Сообщение было отмечено me_egoorr как решение

Решение

да. соединение и Query
выводить на экран можно и через DBGrid
только в ADO я не помощник совсем. у меня и офиса на машине нет, соответственно и драйверов для аксесса и всякого такого

если вы работаете через ADOTable то
1. это только однопользовательская программа
с двух копий программы с одной базой вы работать не сможете
2. зато вы можете редактировать поля таблицы вообще без SQL. она там внутри сама пишет SQL за вас
3. это мало помогает в реальной жизни
поэтому надо учить SQL

пишем SQL
записываем его в Query.SQL.Text
открываем Query.Open
к Query подключаем Datasource, к Datasource - DBGrid и наслаждаемся картинкой

для изменения данных нужно писать SQL запросы. Удаление, вставка, изменение полей
Еще раз повторюсь - никогда не работал с ADO
работал с Firebird через IBX а потом через FIBPlus
там нет такого геморроя и все эти запросы пишутся в IBDataset / FIBDataset
так что пусть кто-то более в курсе подсказвает
ну и Delphi 7 у меня ессно нет...
А в современных все гораздо удобнее ))
1
19.05.2018, 19:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.05.2018, 19:13
Помогаю со студенческими работами здесь

Обработка событий базе данных Спортивные мероприятия
В базе данных Спортивные мероприятия имеется форма Мероприятие, в которой отображается информация о...

Обработка событий в Веб-базе данных Access
Здравствуйте форумчане! Объясните, пожалуйста, в чем причина? Я создал веб - базу данных в...

Нажатие на Базе данных в Delphi
как можно сделать чтобы после нажатии на БД выходила информация? Например после поиска в таблице...

Delphi 7 + Interbase. Путь к базе данных
При запуске проекта и\или при открытии парочки форм, привязанных к БД вылетает ошибка "Project...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru