Цель состоит в том, чтобы выбрать первую запись из DBGrid
(которая дает мне значение id_employee
), запустить SQL query
и получить временный column
(alias
), содержащий результаты.
Пока это работает. Подтвержденный с помощью query
в MySQL Workbench
, он возвращает все значения для column
total
, для всех rows
в этом table
, которые имеют указанные c id_employee
.
Теперь мне нужно скопировать все отдельные результаты из временных (alias
) Result
column
и вставить их в TMemo
. После этого он должен перейти к следующей записи в DBGrid
и повторить весь процесс.
Как мне это сделать? Я пытался использовать другое for loop
и проходить через поле Result
, но оно не работает.
var
row: Integer;
i: Integer;
begin
DBGrid4.DataSource.DataSet.First;
for row := 0 to DBGrid4.DataSource.DataSet.RecordCount -1 do
begin
lunaQuery.SQL.Clear;
lunaQuery.SQL.Text := 'SELECT total AS Result FROM table1 WHERE id_employee=:id_employee AND Month(date)=:month AND Year(date)=:year';
lunaQuery.Params.ParamByName('id_employee').AsInteger := DBGrid4.DataSource.DataSet.FieldByName('id').AsInteger;
lunaQuery.Params.ParamByName('month').AsString := ComboBox3.Text;
lunaQuery.Params.ParamByName('year').AsString := Edit3.Text;
lunaQuery.Open;
Memo1.Lines.Add(lunaQuery.FieldByName('Result').AsString);
DBGrid4.DataSource.DataSet.Next;
end;
end;
Pi c результатов с использованием вышеуказанного query
в MySQL Workbench
: - это необходимо в TMemo
Я использую компоненты MyDA C (компонент запроса) .
РЕДАКТИРОВАНИЕ:
Это не работает, хотя. Только первое значение Result
добавляется для каждого сквозного id_employee
I go. Потенциальные другие для того же id_employee
не добавляются к Memo
. Мне нужны все Result
значения для каждого id_employee
I go через добавленные в Memo
.
Вот как это выглядит в Memo
после изменения на Query.Open
и запуска кода выше:
Они верны в том смысле, что каждое из них представляет только первое значение из Result
на каждом id_employee
. Есть еще. table
содержит несколько строк с разными суммарными значениями для каждого id_employee
. В Workbench они успешно отображаются, когда я запускаю запрос к одному id_employee
, но в Memo
из-за l oop добавляется только первый, а остальные нет.
Как видно из сравнения двух изображений, 35
- это первое значение, которое он находит для id_employee=1
, и добавляет его к Memo
(2-е изображение - 1-е значение). Но он полностью игнорирует следующие 5 найденных значений (pi c 1) и продолжает добавлять первое найденное значение для 2nd id_employee
(id_employee=2
), равное 20
(pi c 2 - 2nd значение) затем игнорируя другие значения для id_employee=2
при переходе на 3-е, добавляя первое значение и так далее ...
Я в замешательстве.