AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

lookupfields

Ein Thema von hanspeter · begonnen am 12. Nov 2012 · letzter Beitrag vom 16. Nov 2012
Antwort Antwort
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#1

lookupfields

  Alt 12. Nov 2012, 17:08
Datenbank: Firebird • Version: 2.5 • Zugriff über: IBDAC
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
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
536 Beiträge
 
Delphi 12 Athens
 
#2

AW: lookupfields

  Alt 12. Nov 2012, 18:28
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.
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
DanielJ

Registriert seit: 8. Sep 2008
Ort: Hamburg
35 Beiträge
 
Delphi XE Professional
 
#3

AW: lookupfields

  Alt 16. Nov 2012, 10:07
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
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#4

AW: lookupfields

  Alt 16. Nov 2012, 10:23
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
Das ist ein Legacy-Projekt. Eine Transactionssteuerung gibt es nicht. Alles auf Autocommit gestellt. (Obwohl über die BDE auf Interbase zugegriffen wurde.)
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
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
536 Beiträge
 
Delphi 12 Athens
 
#5

AW: lookupfields

  Alt 16. Nov 2012, 10:32
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.
Ralf
Gruß vom Niederrhein
  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 09:33 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