![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: IBDAC
lookupfields
Hallo,
hat wer Erfahrung mit Lookupfields? Eine Query Select PersNr from Person hat als persistente Felder Name;Adresse; Fieldkind fkLookup über keyFields mit Query Mitarbeiter verbunden. Über die BDE funktioniert das problemlos. Nach dem Umstellen auf IBDAC funktioniert dieser Konstrukt nicht mehr bzw. nicht stabil. Mir ist schon klar, das sich das auch über einen Join erreichen läßt. Ich sitze aber an einem Legacyprojekt, welches durchgängig auf diese Weise realisiert (zusammengeklickt) ist. Im Datamodul sind so an die 90 Query die untereinander verbandelt sind. Gruß Peter |
AW: lookupfields
Eigentlich sollte das unproblematisch sein. Wichtig ist natürlich, dass die Lookup-Datenquelle offen ist, wenn die die Query Personen geöffnet wird.
Lookup wende ich nur noch an, wenn die Lookup-Quelle zum edititieren / Einfügen von Datensätzen benötigt wird; etwa wenn einem Datensatz nur bestimmte Werte zugeordnet werden dürfen die aus der Lookup-Tabelle kommen. Sonst möglichst alles mit der SQL-Abfrage erledigen. |
AW: lookupfields
Hallo,
schau dir vor dem Hintergund der Antwort von Neumann mal deine Transaktionssteuerung an. Stichworte: Commit und CommitRetaining und was läuft in welcher Transaktion. Aber Vorsicht, ohne Strukturänderungen einer alten BDE-App wird du warscheinlich bei Firebird Probleme mit langlaufenden Transaktinen bekommen. LG, Daniel |
AW: lookupfields
Zitat:
Das ganze Projekt ist kreuz und quer über globale lookupfields verdrahtet. Ich habe den Verdacht, das lookupdatafields eine "Spezialität" der BDE waren und habe Zweifel, ob sie in alternativen Zugriffstools (z.B. IBDAC) im vollen Umfang realisiert sind. Ich habe mich entschlossen, das ganze Lookup Zeug rauszuwerfen, da es sich auch recht einfach über Joins in SQL realisieren läßt. Bei der Gelegenheit bin ich gerade dabei eine saubere Transactionssteuerung einzubauen. IBDAC bietet dazu einen recht guten Mechanismus, um mit offline Datenmengen zu arbeiten. (Cached update) Trotzdem danke für den Tip. Gruß Peter |
AW: lookupfields
Man kann auch Clientdatasets als Lookup-Quellen einsetzen. Dann hat man kein Problem mit dauerhaft offenen Transactions. Dann muss man aber immer daran denken, dass die zugrundeliegenden Daten geändert sein könnten und im Clientdataset 'ewig' die alten Daten stehen wenn man es nicht aktualisiert.
Leider geht nicht alles über Queries und Joins. Sobald Werte vom Anweder geändert werden können, kommt man an Lookup kaum vorbei. Ist im übrigen keine Spezialität der BDE und funktioniert auch mit IBDAC. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz