AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Verbindungsdauer bei Datenbanken
Thema durchsuchen
Ansicht
Themen-Optionen

Verbindungsdauer bei Datenbanken

Ein Thema von TheMiller · begonnen am 9. Mär 2009 · letzter Beitrag vom 9. Mär 2009
Antwort Antwort
Benutzerbild von TheMiller
TheMiller

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

Verbindungsdauer bei Datenbanken

  Alt 9. Mär 2009, 18:20
Datenbank: MySQL • Version: 5 • Zugriff über: Zeos
Hallo,

ich benutze für mein Programm mit 10 Plugins als Backend eine MySQL-Datenbank. Das Hauptprogramm und die Plugins haben jeweils eine eigene Verbindung zur Datenbank. Das funktioniert alles bestens!

Meine Frage ist nun, wie lange so eine Verbinung bestehen bleiben soll. Soll die Verbindung immer sofort wieder geschlossen werden, oder soll die Verbindung so lange aufrecht erhalten werden, wie das jeweilige Plugin genutzt wird? Hier mal ein Beispiel aus der Kundenverwaltung:

Zitat:
Plugin wird aufgerufen. Ein Kunde wird gesucht, Datenbankverbindung wird hergestellt, führ die Query aus und schließt die Verbindung wieder. Ein weiterer Kunde wird gesucht - eine neue Verbindung wird erstellt...etc.
oder vllt so:

Zitat:
Plugin wird aufgerufen, die Datenbankverbindung wird hergestellt, Queries werden ausgeührt (wann auch immer) und beim Verlassen des Plugins wird die Verbindung geschlossen.
Es kann auch passieren, dass Daten mit Barcode eingescannt werden. So wird jedesmal eine neue Verbindung hergestellt.

Was ist nun besser? Danke!
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#2

Re: Verbindungsdauer bei Datenbanken

  Alt 9. Mär 2009, 18:42
Jede neue Verbindung zur Datenbank erzeugt Traffic auf dem Netz. Ich persönlich würde beim Programmstart eine Verbindung zur Datenbank herstellen und beim Beenden des Programms diese Verbindung wieder trennen. Dazwischen kann der user so viele PlugIns laden, benutzen und wieder entladen wie er möchte.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

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

Re: Verbindungsdauer bei Datenbanken

  Alt 9. Mär 2009, 18:44
Ok, so sehe ich das eigentlich auch. So dauert die Abfragen beim BarCode-Scannen auch nicht so lange. Manchmal braucht der PC auch lange, bis er zum Server connected hat. Der einzige Unterschied ist, dass bei mir jedes Plugin seine eigene Verbindung hat.
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#4

Re: Verbindungsdauer bei Datenbanken

  Alt 9. Mär 2009, 18:51
Warum lässt Du die PlugIn's nicht den SQL-Befehl an die Hauptanwendung senden und die macht den Rest und gibt das Ergebnis im Plugin wieder aus.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

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

Re: Verbindungsdauer bei Datenbanken

  Alt 9. Mär 2009, 18:55
Weil die Plugins alle DLLs sind, ich keinen MemoryManager verwenden will und es daher "bequemer" zu programmieren ist. An sich stellt es für mich kein Problem dar, Strings etc zwischen Exe und DLL auszutauschen nur ist es für mich wirtschaftlich nicht rentabel. Den einzigen Nutzen hätte ich in der Hinsicht, dass die DLLs kleiner wären, da die Zeos-Lib nicht mit drinsteckt - aber das ist für mich - in diesem Projekt - kein Grund.
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#6

Re: Verbindungsdauer bei Datenbanken

  Alt 9. Mär 2009, 19:01
Ok, dann bleibt aus meiner Sicht ja nur die Lösung, dass Du die Datenbankverbindung herstellst, wenn die DLL geladen wird. Beim Entladen der DLL die Datenbankverbindung wieder trennst.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

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

Re: Verbindungsdauer bei Datenbanken

  Alt 9. Mär 2009, 19:04
Ok, dann fange ich mal an, das Projekt umzustellen. Ich danke an dieser Stelle!

Für weitere Meinungen/Vorschläge bin ich dennoch offen!
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#8

Re: Verbindungsdauer bei Datenbanken

  Alt 9. Mär 2009, 19:12
Zitat von RWarnecke:
Warum lässt Du die PlugIn's nicht den SQL-Befehl an die Hauptanwendung senden und die macht den Rest und gibt das Ergebnis im Plugin wieder aus.
Wenn Du eh schon Dein Programm umstellen musst, dann schaue Dir doch mal dieses Tutorial an.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

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

Re: Verbindungsdauer bei Datenbanken

  Alt 9. Mär 2009, 19:17
Danke, aber nach diesem Tutorial habe ich dir Plugins erstellt, ergänzt und den DLLs noch Forms gegeben
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Verbindungsdauer bei Datenbanken

  Alt 9. Mär 2009, 20:32
Zitat von DJ-SPM:
Meine Frage ist nun, wie lange so eine Verbinung bestehen bleiben soll.
Bei InterBase / FireBird (neuere Versionen) ist es wegen der Transaktionsverwaltung sehr empfehlenswert, die Verbindung so kurz wie möglich geöffnet zu halten, um lang laufende Transaktionen zu vermeiden. Also z.B. nach dem Öffnen eines ClientDataSets die Verbindung sofort zu schliessen.

Wenn MySQL dieses Problem nicht hat, ist das natürlich ein Pluspunkt für MySQL
Michael Justin
habarisoft.com
  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 11:59 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