Einzelnen Beitrag anzeigen

smarp

Registriert seit: 16. Apr 2010
6 Beiträge
 
#1

Firedac Tabelle mit dll teilen

  Alt 14. Feb 2024, 23:27
Datenbank: Firebird • Version: 2 • Zugriff über: Firedac
Hallo zusammen, ich bin dabei, ein altes Projekt von der Bde auf Firedac umzustellen. Grundsätzlich geht es relativ einfach, nun bin ich allerdings an einem Punkt, wo ich etwas verzweifelt bin. Mit der Bde, TDatabase und TTable/TQuery-Komponenten hatte ich in meinem Hauptprogramm eine Verbindung zentral aufgebaut und alle nötigen TTable-Tabellen geöffnet. Nun konnten DLLs des Programms (mit Loadlibrary dynamisch erzeugt) sich an die Zentrale Stelle wenden (export-Methode) und z.B.ein TTable-Objekt holen, was einer bestimmten Tabelle entsprach. Unabhängig davon, ob das Design nun gut oder schlecht ist, es funktionierte ohne Probleme. Ich hatte dann in der DLL Zugriff auf die Tables des Hauptprogramms und konnte z.B. FindKey aufrufen, um an eine bestimmte Position in der DB zu springen.
Mit Firedac habe ich alles so gelassen, nur statt TDatabase TFDConnection genommen und entsprechend auch TFDTable usw. Der Code ist definitiv korrekt, ich kann mich verbinden und die Daten im Dbgrid Anzeigen lassen. Auch FindKey vom Hauptprogramm geht. Trotzdem bekomme ich bei FindKey aus der DLL, nachdem ich das TFDTable mir geholt hab, immer false zurück. Hat jemand zufällig Erfahrung darin? Kann es vielleicht sein, dass die Connection nicht richtig in der Dll ankommt, wenn ich mir das TFDTable-Objekt hole? Andererseits geht so etwas wie fdtable.fieldbyname(...) ohne Probleme aus der DLL. Daher verstehe ich nicht, warum FindKey nicht geht. Es ist auch das selbe TFDTable-Objekt, was ich von meiner exe zurückbekomme, Indexfieldnames ist auch korrekt, Tabelle und Connection sind geöffnet und alles. Trotzdem geht es nicht. Wäre dankbar für nen Hinweis, Zumal es ja mit TTable funktioniert. Ich hoffe, ich konnte das Problem einigermaßen erklären. FindKey war jetzt nur ein Beispiel, andere Dinge gehen glaub ich auch nicht richtig. Danke!

Geändert von smarp (15. Feb 2024 um 10:38 Uhr)
  Mit Zitat antworten Zitat