![]() |
Delphi-Version: 2009
Datenbankverbindung mit Plugins teilen
Hallo,
ich habe im Forum schon gesucht, eines gefunden und mir auch diesen Artikel ![]() Ich möchte mein Hauptprogramm um viele Plugins erweitern. Jedes Plugin soll aber Daten in eine Firebird-Embedded-Datenbank (v2.5) schreiben können. Nun möchte ich aber auch nicht, dass jedes Plugin allein durch die UniDAC-Komponenten gleich auf 3,5 MB schießt. Daher überlege ich jetzt, wie ich das Datenbank/Plugin-Problem effizient und elegant lösen kann. Sollen die DLLs an meine Hauptanwendung die Queries übergeben und Resultate empfangen oder wäre es besser (bzw. möglich), dass die DLLs das instantiierte Datenbankobjekt "mitbenutzen"? Ich weiß, dass die Stringübergabe zwischen Host<->Plugin umständlich ist. Ich habe es aber schon öfter gemacht und dabei auch auf den Borland-MM/FastMM verzichtet, mit Luckies Hilfe (seinem Artikel). Könnt ihr mir was empfehlen? Danke! |
AW: Datenbankverbindung mit Plugins teilen
Eine Standardlösung ist ein ConnectionPool, diesen kann man über ein Interface auch einer DLL bereitstellen.
Der ConnectionPool enthält 'freie' Connections, jedes Plugin oder jeder Thread in der Hauptanwendung erhält eine eigene Connection (sofern noch welche vorhanden sind). Nach Verwendung gibt das Plugin / der Thread die Connection zurück an den Pool. Wie man die Plugins über Interfaces mit der Anwendung kommunizieren läßt, ist sicher kein Problem :) (Ich habe ein Beispiel in der Jedi Code Library gefunden, JvPlugin, das gut funktioniert) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:56 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