AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Datenbankverbindung mit Plugins teilen

Ein Thema von TheMiller · begonnen am 26. Apr 2012 · letzter Beitrag vom 26. Apr 2012
Antwort Antwort
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.479 Beiträge
 
Delphi XE7 Architect
 
#1

Datenbankverbindung mit Plugins teilen

  Alt 26. Apr 2012, 14:26
Delphi-Version: 2009
Hallo,

ich habe im Forum schon gesucht, eines gefunden und mir auch diesen Artikel Benutzen von Klassen aus einer DLL durchgelesen. Aber so richtig zufrieden/schlauer bin ich nun auch nicht. Ich schildere gerade mal mein Vorhaben:

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!
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
2.244 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Datenbankverbindung mit Plugins teilen

  Alt 26. Apr 2012, 16:20
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)
Michael Justin
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:

Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2016 by Daniel R. Wolf