@xxx9x

Как связать две таблицы delphi?

Добрый день! Я новичок, поэтому не судите строго.

Суть такова: у меня программа с базой данных, где есть 5 таблиц. В таблице продажи при добавлении я указываю консультанта из таблицы сотрудники. В самой таблице сотрудники у меня есть столбец "количество продаж". Суть в том, чтобы при добавлении какой-либо продажи, у меня в "количество продаж" у определенного сотрудника прибавлялось 1.
Я работаю через ADOTable. Надеюсь со скриншотами будет всё понятнее.

На кнопке сохранить в формочке "Добавление продажи" я решил вставить следующий код:

form1.ADOTable3.first; \\ ADOTable3 - таблица с сотрудниками, ADOTable2 - таблица с продажами
sotrud:=form1.ADOTable3.FieldByName('ФИО').asstring;
while not form1.ADOTable3.eof do
begin
if dbcombobox2.text = sotrud then \\ в dbcombobox отображаются ФИО из таблицы "сотрудники"
 \\ тут не знаю, какой код написать, чтобы в таблице сотрудники, в столбце кол-во продаж, у меня прибавлялось 1
end;


Скриншоты:
5ec292a942e00616051595.jpeg
5ec292b495400031550070.jpeg
5ec292ba73ab6225202918.jpeg
  • Вопрос задан
  • 286 просмотров
Решения вопроса 1
HemulGM
@HemulGM Куратор тега Delphi
Delphi Developer, сис. админ
form1.ADOTable3.first; \\ ADOTable3 - таблица с сотрудниками, ADOTable2 - таблица с продажами
sotrud:=form1.ADOTable3.FieldByName('ФИО').asstring;
while not form1.ADOTable3.eof do
begin
  if dbcombobox2.text = sotrud then \\ в dbcombobox отображаются ФИО из таблицы "сотрудники"
  begin
    ADOTable3.FieldByName('название поля с числом').AsInteger := ADOTable3.FieldByName('название поля с числом').AsInteger + 1;
    Brake;
  end;
end;


Но это очень плохой код. В твоём случае рекомендуется выполнять SQL запросы, а не манипулировать данными, которые были загружены. Запросом SQL ты бы написал всего одну строку кода и безо всяких циклов.

Так что подучи как выполнять sql-запросы ADO в Delphi.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы