![]() |
Datenbank: Firebird • Version: 2.1 • Zugriff über: ZEOS
Mit ZEOS auf Firebird Server + Embedded gleichzeitig zugreif
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen!
hab da ein etwas nerviges Problem. Für die Steuerung eines Lagersystems hab ich folgende Vorgehensweise anvisiert: Datenbestand: Firebird 2.1 auf einem Server Fehlermeldungen: Firdbird 2.1 Embedded auf lokalem Rechner Ich will jetzt per ZEOS auf die Datenbanken zugreifen (TZConnection). Wie löst man das Problem, dass ich auf zwei Datenbanken gleichzeitig zugreifen muss? Ich hab das mal versucht so zu lösen.
Delphi-Quellcode:
Entweder nur Server oder nur Embedded funktioniert. Sobald ich aber zwei Instanzen von TZConnection erzeuge,
unit MainUnit;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,ZConnection,DB,ZAbstractRODataset,ZAbstractDataset,ZDataset, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private-Deklarationen } public { Public-Deklarationen } UserDBConnection: TZConnection; ServerConnection: TZConnection; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin UserDBConnection.Disconnect; USerDBConnection.Free; ServerConnection.Disconnect; { Zugriffsverletzung -901 Invalid Transaction Handle } ServerConnection.Free; end; procedure TForm1.FormCreate(Sender: TObject); var WideStr: WideString; FQuery: TZQuery; f: textfile; s: string; begin UserDBConnection:=TZConnection.Create(Self); UserDBConnection.Database:='T:\test.fdb'; UserDBConnection.Protocol:='firebirdd-2.0'; UserDBConnection.User:='SYSDBA'; UserDBConnection.Connect; FQuery:=TZQuery.Create(nil); FQuery.Connection:= UserDBConnection; WideStr:='SELECT * FROM BENUTZER'; with FQuery do begin SQL.Clear; SQL.Add(WideStr); Open; end; Label1.Caption:='UserDB: '+IntToStr(FQuery.RecordCount)+' Einträge'; FQuery.Free; ServerConnection:=TZConnection.Create(Self); ServerConnection.Database:='MATERIALSTAMM'; ServerConnection.Protocol:='firebird-2.0'; ServerConnection.User:='FRANZ'; ServerConnection.Password:='nix'; ServerConnection.HostName:='localhost'; ServerConnection.Connect; FQuery:=TZQuery.Create(nil); FQuery.Connection:= ServerConnection; WideStr:='SELECT * FROM MATERIAL'; with FQuery do begin SQL.Clear; SQL.Add(WideStr); Open; end; Label2.Caption:='ServerDB: '+IntToStr(FQuery.RecordCount)+' Einträge'; FQuery.Free; { Diese Abfrage macht Tabelleabfrage auf Server, nicht von Embedded ??? } FQuery:=TZQuery.Create(nil); FQuery.Connection:= UserDBConnection; WideStr:='SELECT * FROM BENUTZER'; with FQuery do begin SQL.Clear; SQL.Add(WideStr); Open; end; Label3.Caption:='UserDB: '+IntToStr(FQuery.RecordCount)+' Einträge'; FQuery.Free; end; end. geht das ganze nicht mehr, Fehlercodes -904 / -901. Was mach ich falsch? Für Eure Hilfe vielen Dank im voraus |
Re: Mit ZEOS auf Firebird Server + Embedded gleichzeitig zug
Hey Dein Server ist doch nicht Localhost... -> Server-IP angeben und los gehts...
ServerConnection.HostName:='localhost'; (afu einem Server ) // Grüße Martin |
Re: Mit ZEOS auf Firebird Server + Embedded gleichzeitig zug
Hallo,
ich habe das über zwei getrennte TZConnection-Komponenten in getrennten Datenmodulen realisiert (gut, wahrscheinlich gehts auch mit nur einem Modul), funktioniert einwandfrei. Gruß Frank |
Re: Mit ZEOS auf Firebird Server + Embedded gleichzeitig zug
Hallo Martin
localhost weil der Server zu Testzwecken auf meinem Compi installiert ist, funkt auch mit einer IP Adresse nicht Hallo Frank, hab ich probiert, geht bei mir leider auch nicht, bekomme noch immer Fehlermeldungen .... :wall: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 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