AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Master/detail via Matsersource und Index
Thema durchsuchen
Ansicht
Themen-Optionen

Master/detail via Matsersource und Index

Ein Thema von delphia · begonnen am 20. Mai 2016 · letzter Beitrag vom 23. Mär 2018
Antwort Antwort
delphia

Registriert seit: 23. Aug 2010
22 Beiträge
 
Delphi 2010 Professional
 
#1

Master/detail via Matsersource und Index

  Alt 20. Mai 2016, 17:49
Datenbank: DBISAM • Version: 2.12 • Zugriff über: D5#1
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.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#2

AW: Master/detail via Matsersource und Index

  Alt 21. Mai 2016, 07:31
Moin...

Hatte eine kurze Zeit auch mal das Vergnügen mit ElevateDB und DBISAM... Deinen konkreten Fall hatte ich dabei aber nicht. Als Workaround vieleicht der Vorschlag die speziellen Fälle via SQL abzuarbeiten. (Statt der Table ein select * mit order by)

PS: Bei Master Detail wäre es sogar (aber leider nicht immer) besser die Detaildaten jeweils beim Wechsel der Masterdaten neu zu holen.

Geändert von haentschman (21. Mai 2016 um 07:33 Uhr)
  Mit Zitat antworten Zitat
delphia

Registriert seit: 23. Aug 2010
22 Beiträge
 
Delphi 2010 Professional
 
#3

AW: Master/detail via Matsersource und Index

  Alt 21. Mai 2016, 14:36
Moin...

Hatte eine kurze Zeit auch mal das Vergnügen mit ElevateDB und DBISAM... Deinen konkreten Fall hatte ich dabei aber nicht. Als Workaround vieleicht der Vorschlag die speziellen Fälle via SQL abzuarbeiten. (Statt der Table ein select * mit order by)
Daran habe ich auch schon gedacht. Jedoch, beim Master handelt es sich um eine Tabelle mit mehreren Tausend Datensätzen und den Details um mindestens 4 Tabellen, mit unterschiedlichem Umfang, von 100 bis 2500 Sätzen und wachsend. Das ganze im FileServer, Multiuserbetrieb über ein LAN. Jetzt hatte ich irgendwo, im Handbuch oder beim Elevate auf der Seite gelesen, dass SQL hier langsamer wäre als die Implementation über diese M/D Variante. Daher wollte ich die SQL Lösung nur im Notfall anwenden.

PS: Bei Master Detail wäre es sogar (aber leider nicht immer) besser die Detaildaten jeweils beim Wechsel der Masterdaten neu zu holen.
Das würde ich mittels Expressionfilter einer SQL Lösung vorziehen.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#4

AW: Master/detail via Matsersource und Index

  Alt 21. Mai 2016, 16:36
Ich meinte nicht die gesamten Detaildaten sondern nur die Daten die zum Masterdatensatz gehören. Die kannst du wunderbar "zusammenjoinen". Da spielt es keine Rolle ob die Detaildaten aus 1..n Tabellen stammmen.
  Mit Zitat antworten Zitat
Benutzerbild von fs999
fs999

Registriert seit: 4. Dez 2006
Ort: Luxembourg
46 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Master/detail via Matsersource und Index

  Alt 29. Jul 2016, 10:20
Hallo,

Ein wenig spät aber versuchen Sie es mit IndexFieldNames anstatt IndexName...

mfG
  Mit Zitat antworten Zitat
nero666

Registriert seit: 14. Feb 2007
1 Beiträge
 
#6

AW: Master/detail via Matsersource und Index

  Alt 23. Mär 2018, 11:39
Hallo,

obwohl bereits einige Zeit ins Land gegangen ist, wollte ich den Tip aus dem Eintrag von fs999 bestätigen, da er mir geholfen hat

Delphi 6 / DBISAM 4

Index war ein String-Feld -> Master-Detail-Verbindung hat nicht funktioniert.
Umstellung der Verbindung auf "IndexFieldNames" funktioniert -> Detaildatensatz wird angezeigt.

MfG
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz