Topic: Фильтр для TGrid
Добрый день.
Делаю БД кафешки, пока только набросок. Помогите с отображением данных в TGrid:
При открытии формы Fzakaz, скриптом вставляю в таблицу zakaz новую пустую запись и сохраняю id, в левой TGrid меню выводятся все данные из таблицы bludo, при нажатии кнопки "Добавить в заказ" открывается новая форма с заполненными полями из таблицы bludo (название, цена) и zakaz (id), по нажатию в этой форме кнопки "сохранить" все данные сохраняются в таблицу sostav_z и форма закрывается, при этом в TGrid заказ отображается все данные из таблицы sostav_z, а должны только записи текущего заказа (zakaz.id=lastid).
Пытался сделать фильтр в настройках таблицы и скриптом:
procedure Fzakaz_TableGrid2_OnChange (Sender: TObject);
begin
Fzakaz.TableGrid2.dbFilter:='id='+lastid;
end;
при выполнении запроса появляется ошибка:
Сообщение об ошибке:
#23000Column 'id' in where clause is ambiguous
Action (Search):
Fzakaz
Запрос вызывающий ошибку:
SELECT DISTINCT `sostav_z`.`id_zakaz` as "sostav_z.id_zakaz",`bludo`.`Название` as "bludo.Название",`sostav_z`.`Количество` as "sostav_z.Количество",`sostav_z`.`Сумма` as "sostav_z.Сумма",`sostav_z`.id,`sostav_z`.`id_bludo` as "sostav_z.id_bludo" FROM `sostav_z` LEFT OUTER JOIN `bludo` ON `sostav_z`.`id_bludo`=`bludo`.id WHERE (id=22)
Как сделать, чтобы в TGrid заказ отображались записи только текущего заказа? Может у меня вообще в корне не верный алгоритм?
PS: БД - MySQL.