![]() |
Datenbank: Firebird • Version: 2.5.7 • Zugriff über: FireDAC
FireDAC TFDIBInfo: Invalid clumplet buffer structure
Hallo alle zusammen,
ich habe ein Problem beim Zugriff auf meine Firebird Datenbank via FireDAC. Ich möchte von der Datenbank die Versionsinformationen auslesen, hierfür verwende ich folgende Funktion:
Delphi-Quellcode:
Der Aufruf von
function TDBInterface.RetrieveServerVersionStr: String;
var FIBServerProperties: TFDIBInfo; Version: TIBInfo.TVersion; begin Result := EmptyStr; FIBServerProperties := TFDIBInfo.Create(nil); try FIBServerProperties.Host := 'SERVERNAME'; FIBServerProperties.Port := 3050; FIBServerProperties.Protocol := ipTCPIP; FIBServerProperties.DriverLink := FDPhysFBDriverLink; FIBServerProperties.UserName := 'SYSDBA'; FIBServerProperties.Password := 'pass'; FIBServerProperties.QueryTimeout := 3; FIBServerProperties.ConnectTimeout := 5; FIBServerProperties.GetVersion(Version); // <- EIBNativeException mit der Meldung [FireDAC][Phys][FB]Invalid clumplet buffer structure: buffer end before end of clumplet - clumplet too long Result := Version.FServerStr; finally FIBServerProperties.Free; end; end;
Code:
führt zu der im Code genannten Exception.
FIBServerProperties.GetVersion(Version)
Durch etwas probieren, habe ich folgendes herausfinden können: Kommentiere ich die Zeilen
Code:
aus, wird FIBServerProperties.GetVersion(Version) korrekt ausgeführt und ich erhalte die gewünschten Informationen. Jedoch funktioniert das nur auf einer lokalen Datenbank. Auf einer Datenbank, die auf einem Server liegt, erhalte ich
FIBServerProperties.QueryTimeout := 3;
FIBServerProperties.ConnectTimeout := 5;
Code:
(Vermutlich, weil der Server keine Zeit zum Antworten bekommt.)
EIBNativeException mit der Meldung '[FireDAC][Phys][FB]Unable to complete network request to host
Suche ich nach dem Buffer Fehler, finde ich einen Eintrag in der Firebird FAQ: ![]() Zitat:
Über Antworten und Tipps würde ich mich sehr freuen! P.S.: Ich verwende übrigens FireDAC aus der Delphi Prof. 10.2.1 |
AW: FireDAC TFDIBInfo: Invalid clumplet buffer structure
Hallo,
hast du mal die Firewalls ausgeknippst? Kannst du "SERVERNAME" sonst erreichen? Was ist, wenn die lokal bist, aber per Localhost auf die DB zugreifst? |
AW: FireDAC TFDIBInfo: Invalid clumplet buffer structure
Firewall hab ich deaktiviert.
Die Schnittstelle und diese Funktion funktionierte auch mit einer FIBPlus-Schnittstelle, die ich gerne ersetzen möchte. DB kann ich also erreichen. Über lokal ist das ja auch alles kein Problem, problematisch wird es wohl erst wenn ich im Netz arbeite. |
AW: FireDAC TFDIBInfo: Invalid clumplet buffer structure
Hallo,
schon gesehen, dass es FireDac ist ;) Kannst du denn die Version der DB auf dem Server auslesen, wenn du die lokal funktionierende DB mal auf den Server packst? Also die identische Datei benutzen. |
AW: FireDAC TFDIBInfo: Invalid clumplet buffer structure
Habe das gerade nochmal getestet, nein das Auslesen der Version geht nicht, wenn ich die lokal funktionierende DB auf einen Server packe.
Ich erhalte wie eingangs erwähnt mit
Delphi-Quellcode:
eine
FIBServerProperties.QueryTimeout := 3;
FIBServerProperties.ConnectTimeout := 5;
Code:
und ohne eine
EIBNativeException mit der Meldung [FireDAC][Phys][FB]Invalid clumplet buffer structure: buffer end before end of clumplet - clumplet too long
Code:
Also kann es an der Datenbank nicht liegen. :|
EIBNativeException mit der Meldung '[FireDAC][Phys][FB]Unable to complete network request to host
|
AW: FireDAC TFDIBInfo: Invalid clumplet buffer structure
Moin...:P
Nur mal so am Rande... :gruebel: Hast du den FireDAC Client/Server Pack ![]() gekauft? In der Professional Version ist nur Lokal drin. Die Meldung: Zitat:
|
AW: FireDAC TFDIBInfo: Invalid clumplet buffer structure
Nein, den habe ich nicht. Ich habe nur die Standard-version, die bei Delphi Prof dabei ist.
Was mich daran wundert ist, das alle anderen Funktionen Client/Server technisch gehen. Also DB Abfragen (Select) und Änderungen (Insert, Update, Delete), Modifikationen wie CREATE, ALTER und DROP habe ich auf die schnelle noch nicht getestet. Kann mir dazu jemand eine Auskunft geben, ob ich mit der Standard bezühlich der SQL Anweisungen bei einem Client/Server zukünftig in Probleme laufe? Derzeit ist das Budget für den Client/Server Pack noch nicht gegeben. Notfalls müsste ich auf das Auslesen der Server Version erstmal verzichten, aber deswegen mir den Client/server Pack zu kaufen ist erstmal nicht drin :roll: Danke für die bisherigen Infos, daran hatte ich nicht gedacht. |
AW: FireDAC TFDIBInfo: Invalid clumplet buffer structure
Nutzt Du nur FireBird-Datenbanken oder muss die Lösung (auf Dauser) datenbankunabhängig sein?
Serverversion von Firebird per SQL abfragen:
SQL-Code:
SELECT rdb$get_context('SYSTEM', 'ENGINE_VERSION') from rdb$database;
![]() |
AW: FireDAC TFDIBInfo: Invalid clumplet buffer structure
Derzeit ist es nur eine Firebird-DB und das wird auch erstmal so bleiben. Deine Abfrage wäre auch mein Notausgang gewesen :thumb:
Nur habe ich jetzt ein bisschen Panik, dass meine Anwendung wegen der Aussage von haentschman den Dienst bei Client/Server verweigert... :| Erste Tests widersprechen dem jedoch und es scheint auch alles zu funktionieren. Ich frage einfach mal in die Runde: Haben andere die Delphi Prof mit FireDAC Standard im Client/Server Betrieb mit Firebird im Einsatz? |
AW: FireDAC TFDIBInfo: Invalid clumplet buffer structure
Was heißt client/server? Wenn das Server-Programm auf die (für das Server-Programm) Lokal liegende Datenbank zugreift gibt es ja kein Problem?
|
AW: FireDAC TFDIBInfo: Invalid clumplet buffer structure
Zitat:
Nochmal zur Klarstellung: Ich habe eine Delphi Applikation welche über FireDAC mit einer Firebird-Datenbank auf einem Server via TCPIP kommunizieren soll. |
AW: FireDAC TFDIBInfo: Invalid clumplet buffer structure
Zitat:
|
AW: FireDAC TFDIBInfo: Invalid clumplet buffer structure
Vielen Dank für die vielen Beiträge und Informationen. Ich habe mich direkt an den Support gewandt und eine verbindliche Information erhalten.
Zitat:
Danke nochmal an alle. |
AW: FireDAC TFDIBInfo: Invalid clumplet buffer structure
Zitat:
Dazu muss man den Kontext auch darstellen: Netzwerkzugriff für/über FireDAC ist nicht vorgesehen.... hatte ich ("der Support" :-)) auch so geschrieben |
AW: FireDAC TFDIBInfo: Invalid clumplet buffer structure
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 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