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!