У меня есть база данных sqlite, содержащая «заметки» для клиентов. Дизайн базы данных довольно прост и включает в себя одну таблицу для заметок, таблицу «ссылок», связь, привязку клиентов и заметок с именем customer_note и таблицу клиентов. В таблице заметок есть поле id, у customer_note есть customer_id и note_id (один для многих), а таблица клиентов также имеет идентификатор.TSQLQuery и обновление компонентов, осведомленных о данных
Запрос для получения ноты для выбранного клиента является:
SELECT * FROM note n
INNER JOIN customer_note cn
ON (cn.note_id = n.id)
WHERE customer_id = :customerID
ORDER BY created_on ASC
Запрос выполняется в случае, когда прокручивают клиентов клиентский набор данных, т.е.
customersCDSAfterScroll()
{
int cID = customerCDS->FieldByName("id")->AsInteger;
customerNotesQ->Params->ParamByName("customerID")->AsInteger = bID;
customerNotesQ->Open();
//Get notes
string note = stdstr(customerNotesQ->FieldByName("note")->AsString);
Log(lInfo) << "Note is: "<<note;
customerNotesQ->Close();
}
Запрос ссылается на DataSetProvider, ClientDataSet и компонент DataSource. В пользовательском интерфейсе TDBLookupListbox принимает данные.
Проблема заключается в том, что TDBLookpListbox показывает ВСЕ примечания для всех клиентов. В сообщениях журнала, из приведенного выше кода, я вижу, что запрос, похоже, выполняет свою работу правильно.
Любая идея о том, что происходит не так?