В бд (access) есть меются 2 таблицы:
1) Client
idc - номер клиента, счётчик
family - текст
name - текст
ph - телефон
2) Visit
id - номер встречи, счетчик
idc - номер клиента, числовое поле
date - ну тут понятно
Связь я так понимаю один ко многим, т.к. клиент может несколько раз приходить, т.е.
idc(счетчик) 1 ко М idc (числовой)
В приложении нужно отображать 1 таблицу для работы с ней, и короче lookup я юзать не могу, потому что они не сортируются/фильтруются/ищутся. Для этого можно сделать кнопочки с sql запросами, т.е. dbgrid будет менять datasource в зависимости от нужной команды.
например есть по 2 записи в таблице
Client
idc family name ph
1 Петров Пётр 12345
2 Иванов Иван 12346
Visit
id idc date
1 1 11.08.2011
2 2 12.08.2011
Но проблема в том, что запрос
Код:
procedure TForm2.Button1Click(Sender: TObject);
begin
datamodule1.adoquery1.Active:=false;
datamodule1.adoquery1.SQL.Clear;
datamodule1.adoquery1.SQL.Add('SELECT visit.id, visit.idc, client.idc, visit.date, client.family');
datamodule1.adoquery1.SQL.Add('FROM visit, client');
datamodule1.adoquery1.SQL.Add('order by client.family');
datamodule1.adoquery1.Active:=true;
end;
дублирует записи, и в DBGrid получается:
visit.id__
visit.idc__
client.idc____
visit.date____
client.family
2________2_________2_______12.08.2011____Иванов
1________1_________2_______11.08.2011____Иванов
2________2_________1_______12.08.2011____Петров
1________1_________1_______11.08.2011____Петров
а хотелось бы 2 правильные строки
вобщем я подумал что это из-за связи, мб не правильно сделал, удалил связи, делал другие, не помогло. Сделал запрос выборки данных только из 1 таблицы - всё ок работает, а с 2 таблицами такое вот дублирование =\ Где я ошибся?)
p.s. извините за многобукв)