Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   DB- Verbindungs-ab und -Aubau nötig? (https://www.delphipraxis.net/147383-db-verbindungs-ab-und-aubau-noetig.html)

khh 7. Feb 2010 08:40

Datenbank: firebird • Version: 2.1 • Zugriff über: zeos

DB- Verbindungs-ab und -Aubau nötig?
 
Hallo zusammen,
ich habe mehrere Programme, die auf die gleiche DB zugreifen.
In die diversen DB-Grids werden die daten z.B. mit:
Delphi-Quellcode:
 TColumn(self.Columns[0]).Field:= FauftragQuery.FieldByName('auftragsnr');
eingelesen.

Nun bekommt ja Programm A nicht mit wenn von Programm B Daten geändert worden sind.
Aus diesem Grunde trenne ich im onshow des Form vom Prog A die Verbindung und baue sie neu auf.
Nun befinden sich aber im Prog A diverse Tabs, die jeweils ein anderes SQl-Statement als Grundlage haben, so dass ich bei jedem tabwechsel die verbindung zur DB neu erstellen müsste.

Wie macht Ihr das in so einem Fall?
Das sollte doch irgedwie einfacher zu bewerkstelligen sein, so dass auch weniger Zeit benötigt wird, als beim mehrfachen DB-Ab und -Aufbau?



Danke für eure Meinungen.

Gruss KH

mjustin 7. Feb 2010 09:23

Re: DB- Verbindungs-ab und -Aubau nötig?
 
Zitat:

Zitat von khh
Das sollte doch irgedwie einfacher zu bewerkstelligen sein, so dass auch weniger Zeit benötigt wird, als beim mehrfachen DB-Ab und -Aufbau?

Bei Interbase (7) sind die Zeiten zum Aufbauen der DB-Verbindung so minimal, dass wir sie immer nach dem Ausführen einer Abfrage trennen. Das entlastet die Datenbank da die Transaktionen dann immer sehr kurz sind. In IBConsole fällt dann um so leichter auf, wenn ein Programm zu lange in einer Transaktion hängt.

Im Client verwenden wir TClientDataSet. Die Daten in der Oberfläche sind dadurch auch nach dem Schliessen der Verbindung sichtbar. Wenn also eine Abfrage aktualisiert wird, bleiben die mit allen anderen ClientDataSets verbundenen Teile unverändert.

Viele Grüße,

haentschman 7. Feb 2010 09:26

Re: DB- Verbindungs-ab und -Aubau nötig?
 
Guten Morgen...

du brauchst die Connection nicht trennen.
Zitat:

Nun bekommt ja Programm A nicht mit wenn von Programm B Daten geändert worden sind.
Stelle in der Zeos Connection den Transaktions Level auf tlReadCommitted statt tlNone und die Daten sind von A aus sichtbar.(wenn sie committed sind)

:hi:

khh 7. Feb 2010 10:01

Re: DB- Verbindungs-ab und -Aubau nötig?
 
Zitat:

Zitat von haentschman
Guten Morgen...

du brauchst die Connection nicht trennen.

Stelle in der Zeos Connection den Transaktions Level auf tlReadCommitted statt tlNone und die Daten sind von A aus sichtbar.(wenn sie committed sind)

:hi:

funktioniert super,


ich danke euch

Gruss Kh

mkinzler 7. Feb 2010 12:19

Re: DB- Verbindungs-ab und -Aubau nötig?
 
Zitat:

Bei Interbase (7) sind die Zeiten zum Aufbauen der DB-Verbindung so minimal, dass wir sie immer nach dem Ausführen einer Abfrage trennen. Das entlastet die Datenbank da die Transaktionen dann immer sehr kurz sind.
Die Transaktionen sind genauso kurz ohne dass man die Verbindung trennt.
Zitat:

In IBConsole fällt dann um so leichter auf, wenn ein Programm zu lange in einer Transaktion hängt.
Dann scheint etwas an den Abfragen nicht zu stimmen.
Bei bei Zeos keine harten Commits möglich sind ist der Verbindungsab und. Wiederaufbau der einzige Weg Transaktionen komplett abzuschliessen.

Teekeks 7. Feb 2010 13:44

Re: DB- Verbindungs-ab und -Aubau nötig?
 
Hey!
Das hatte ich auch gerade erst!
mach man das hier:
Delphi-Quellcode:
  ZConnection.TransactIsolationLevel:=tiReadCommitted;
Und schon brauchst du das nicht mer mit dem jedes man Connecten :)

Edit: arg, das war ja schon :(

khh 17. Feb 2010 11:30

Re: DB- Verbindungs-ab und -Aubau nötig?
 
Zitat:

Zitat von Teekeks
Hey!
Das hatte ich auch gerade erst!
mach man das hier:
Delphi-Quellcode:
  ZConnection.TransactIsolationLevel:=tiReadCommitted;
Und schon brauchst du das nicht mer mit dem jedes man Connecten :)

Edit: arg, das war ja schon :(

ich danke dir trotzdem :-)

mjustin 17. Feb 2010 16:22

Re: DB- Verbindungs-ab und -Aubau nötig?
 
Zitat:

Zitat von mkinzler
Zitat:

Bei Interbase (7) sind die Zeiten zum Aufbauen der DB-Verbindung so minimal, dass wir sie immer nach dem Ausführen einer Abfrage trennen. Das entlastet die Datenbank da die Transaktionen dann immer sehr kurz sind.
Die Transaktionen sind genauso kurz ohne dass man die Verbindung trennt.

Bei dbExpress haben wir automatische Transaktionen (was ja an sich auch gut ist) und TClientDataSet, und die kann man leider nicht anders beenden als durch das Schliessen der Verbindung.

khh 17. Feb 2010 16:56

Re: DB- Verbindungs-ab und -Aubau nötig?
 
Zitat:

Zitat von mjustin

Bei dbExpress haben wir automatische Transaktionen (was ja an sich auch gut ist) und TClientDataSet, und die kann man leider nicht anders beenden als durch das Schliessen der Verbindung.

die explizite Transaktionssteuerung ist bei diesem Projekt ja auch nur in bestimmten Konstellationen nötig, ansonsten lasse ich das Firebird auch automatisch machen.

EDIT: war zwar ein anderer Thread, aber passt auch hier ;-)
Gruss KH

hoika 18. Feb 2010 08:00

Re: DB- Verbindungs-ab und -Aubau nötig?
 
Hallo,

Zitat:

ansonsten lasse ich das Firebird auch automatisch machen.
Firebird "steuert" automatisch die Transaktionen ?
Habe ich was bei den Release Notes überlesen ?


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:51 Uhr.
Seite 1 von 2  1 2      

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