Hallo,
ich habe hier eine ältere Applikation zu pflegen, daher D5#1 und DBISAM 2.12. Keine Chance zu wechseln.
Zum Problem: Zur Laufzeit werden mehrere Tables erzeugt und über eine einfach Anweisung wie diese
Code:
tbl.IndexName := 'secondary';
tbl.Mastersource := dstAdressen;
tbl.MasterFields := 'ID';
zum Detail einer bereits zur Designzeit erzeugten Mastertabelle.
Alles arbeitet einwandfrei, die Detail Datensätze werden sauber gelistet. Außer in einem Fall, nämlich dann, wenn in dem vereinbarten Index ein Textfeld enthalten ist. Das erste Feld im Index "secondary" ist immer die "ID", danach kann das Textfeld an beliebiger Stelle kommen. Entfernt man das Textfeld aus dem Index, arbeitet alles wie erwartet. Setzt man es wieder ein, werden keine Datensätze mehr gelistet.
Als workaround habe ich anstatt dieser Verknüpfungen eine mit Ranges codiert. Damit zeigt sich das gleiche Verhalten. Alles gut, bis ein Textfeld im Index ist.
Fragen:
Habe ich evtl etwas Grundlegendes übersehen?
Ist der Fehler bei DBISAM bekannt? Von Elevate ist nichts zu erfahren, wegen deren Supportpolitik (kein Plan, keine Auskunft).
Ist das evtl ein Fehler der TDataset-Implementation in D5?
Bin für alle sachdienlichen Hinweise dankbar. Vielen Dank für die Aufmerksamkeit.