Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Zconnection zur Laufzeit erstellen (https://www.delphipraxis.net/176020-zconnection-zur-laufzeit-erstellen.html)

khh 7. Aug 2013 09:19

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

Zconnection zur Laufzeit erstellen
 
Hallo zusammen, ich möchte eine Anzahl Zconnections(ZEOS) zur Laufzeit erstellen.

Wie viele das sind entscheidet sich ebenfalls erst zur Laufzeit.
Das scheitert aber wohl daran, dass ich in Delphi/Pascal die Connections vorher deklarieren muss :-(

Jemand ne Idee?

Sharky 7. Aug 2013 09:25

AW: Zconnection zur Laufzeit erstellen
 
Zitat:

Zitat von khh (Beitrag 1223808)
Hallo zusammen, ich möchte eine Anzahl Zconnections(ZEOS) zur Laufzeit erstellen.

Wie viele das sind entscheidet sich ebenfalls erst zur Laufzeit.
Das scheitert aber wohl daran, dass ich in Delphi/Pascal die Connections vorher deklarieren muss :-(

Jemand ne Idee?

Hai khh,

warum brauchst Du denn mehrere Connections? Verbindest Du dich zeitgleich zu mehrere Datenbanksystemen?

Aber egal. Warum sollte es nicht möglichsein eine TZConnection zur Laufzeit zu erzeugen? Ist doch ein Object wie jedes andere auch.

Sir Rufo 7. Aug 2013 09:27

AW: Zconnection zur Laufzeit erstellen
 
Wenn die alle gleich sein sollen (also auf den selben Server, gleiche Accountdaten, etc.), dann baue dir eine Factory und evtl. noch eine ObjectPool.

Was willst du damit erreichen? Davon hängt auch die Implementierung ab

khh 7. Aug 2013 09:28

AW: Zconnection zur Laufzeit erstellen
 
ja , ich verbinde gleichzeitig zu mehreren Datenbanken.

Welche und wieviele das sind entscheidet sich erst zur Laufzeit.

Sir Rufo 7. Aug 2013 09:31

AW: Zconnection zur Laufzeit erstellen
 
Aber wo ist denn das Problem?

Das reine Erzeugen und Eigenschaften setzen kann es ja nicht sein

khh 7. Aug 2013 09:32

AW: Zconnection zur Laufzeit erstellen
 
Zitat:

Zitat von Sir Rufo (Beitrag 1223813)
Wenn die alle gleich sein sollen (also auf den selben Server, gleiche Accountdaten, etc.), dann baue dir eine Factory und evtl. noch eine ObjectPool.

Was willst du damit erreichen? Davon hängt auch die Implementierung ab

nein , die sind eben nicht alle gleich.
Es geht um einen Datenabgleich auf mehreren Maschinen, den ich eben deshalb flexibel halten möchte, da die Anzahl der beteiligten Maschinen erst zur Laufzeit entschieden wird.
Die Zugangsdaten lese ich, wohl altmodisch, aus einer Inidatei.

khh 7. Aug 2013 09:35

AW: Zconnection zur Laufzeit erstellen
 
>> Aber wo ist denn das Problem?

Vielleicht stehe ich ja auf der Leitung.

ich möchte für jede Verbindung zur Laufzeit eine Zconnection erzeugen und die Zugangsdaten zuweisen.
dabei brauche ich doch x verschiedene Bezeichnungen und ZConnection-Objekte, oder ?
Ich kann aber doch das Objekt erst anlegen, wenn es vorher im Deklarationsteil der Unit deklariert wurde?
Das weiss ich aber zu der Zeit noch nicht

Nachtrag: den ganzen Aufwand brauch ich, weil sichergestellt werden muss, dass der Datenabgleich auf allen Maschinen gleichzeitig durchgeführt wird.
Deshalb möchte ich erst alle Verbindungen aufbauen, und erst wenn alle Verbindungen stehen, den Abgleich durchführen.

Jemand ne andere Idee?

Sir Rufo 7. Aug 2013 09:51

AW: Zconnection zur Laufzeit erstellen
 
Die Strukturen sind aber bei jedem Server gleich?

Dann übergib doch dem Verarbeitungsteil einfach nur die Connection und auf der wird dann rumgeorgelt.

khh 7. Aug 2013 09:56

AW: Zconnection zur Laufzeit erstellen
 
ja, die Strukturen sind gleich.

ich glaube ich steh wirklich auf der Leitung:-(

Wie meinst das, mit connection übergeben.
Dann hab ich die Verbindungen aber doch nicht gleichzeitig??

Ich wollte alle Verbindungen aufbauen und die Verbindung halten, dann die Daten abgleichen und erst am Schluss, wenn alles durchgelaufen ist, die einzelnen Tabellen "commiten".

Sir Rufo 7. Aug 2013 09:59

AW: Zconnection zur Laufzeit erstellen
 
Also packst du die ganzen Connections in eine Liste.

Dann durch die Liste gehen und jeweils die Verbindung aufbauen.
Dann durch die Liste und jeweils eine Transaktion starten.

Dann durch die Liste gehen und jeweils die Befehle ausführen.

Dann durch die Liste gehen und jeweils die Transaktion committen.

Bei einem Fehler

Durch die Liste gehen und jeweils die Transaktion rollbacken :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 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