Ich habe eine SQLite-Datenbank mit 'Notizen' für Kunden. Das Datenbankdesign ist recht einfach und umfasst eine Tabelle für Notizen, eine "Link" -Tabelle, eine Verknüpfung, eine Beziehung zwischen Kunden und Notizen namens customer_note und eine Kunden-Tabelle. Die Notizentabelle hat ein ID-Feld, die customer_note hat customer_id und note_id (eins zu viele) und die Kundentabelle hat ebenfalls eine ID.TSQLQuery und Update von Daten bewusst Komponenten
Die Abfrage der Hinweise für einen ausgewählten Kunden zu erhalten ist:
SELECT * FROM note n
INNER JOIN customer_note cn
ON (cn.note_id = n.id)
WHERE customer_id = :customerID
ORDER BY created_on ASC
Die Abfrage in einem Fall ausgeführt wird, in dem die Kunden Client-Datenmenge gescrollt wird, dh
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();
}
Die Abfrage wird von einem DataSetProvider, einer ClientDataSet-Komponente und einer DataSource-Komponente referenziert. Auf der Benutzeroberfläche empfängt eine TDBLookupListbox die Daten.
Problem ist, die TDBLookpListbox zeigt alle Notizen für alle Kunden. In den Protokollnachrichten, aus dem obigen Code, kann ich sehen, dass die Abfrage ihre Aufgabe jedoch korrekt zu tun scheint.
Irgendeine Idee, was schief läuft?