AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi FireDAC TFDIBInfo: Invalid clumplet buffer structure

FireDAC TFDIBInfo: Invalid clumplet buffer structure

Ein Thema von WiPhi · begonnen am 25. Sep 2017 · letzter Beitrag vom 26. Sep 2017
Antwort Antwort
WiPhi

Registriert seit: 19. Feb 2015
90 Beiträge
 
Delphi 11 Alexandria
 
#1

FireDAC TFDIBInfo: Invalid clumplet buffer structure

  Alt 25. Sep 2017, 14:41
Datenbank: Firebird • Version: 2.5.7 • Zugriff über: FireDAC
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:
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;
Der Aufruf von
Code:
FIBServerProperties.GetVersion(Version)
führt zu der im Code genannten Exception.

Durch etwas probieren, habe ich folgendes herausfinden können:
Kommentiere ich die Zeilen
Code:
    FIBServerProperties.QueryTimeout := 3;
    FIBServerProperties.ConnectTimeout := 5;
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
Code:
EIBNativeException mit der Meldung '[FireDAC][Phys][FB]Unable to complete network request to host
(Vermutlich, weil der Server keine Zeit zum Antworten bekommt.)

Suche ich nach dem Buffer Fehler, finde ich einen Eintrag in der Firebird FAQ: http://www.firebirdfaq.org/faq320/
Zitat:
If you use Firebird API directly from C, check your code. Otherwise it may be a bug in your connectivity library. It is also a common error message when you don't use multibyte character sets properly (for example UTF-8).
Kann mir jemand helfen oder ist das ein Fehler in der FireDAC Schnittstelle?

Über Antworten und Tipps würde ich mich sehr freuen!

P.S.: Ich verwende übrigens FireDAC aus der Delphi Prof. 10.2.1
Wer sucht, der findet. Wer länger sucht, findet mehr.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: FireDAC TFDIBInfo: Invalid clumplet buffer structure

  Alt 25. Sep 2017, 21:52
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?
Heiko

Geändert von hoika (25. Sep 2017 um 22:00 Uhr)
  Mit Zitat antworten Zitat
WiPhi

Registriert seit: 19. Feb 2015
90 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: FireDAC TFDIBInfo: Invalid clumplet buffer structure

  Alt 25. Sep 2017, 22:02
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.
Wer sucht, der findet. Wer länger sucht, findet mehr.

Geändert von WiPhi (25. Sep 2017 um 22:06 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: FireDAC TFDIBInfo: Invalid clumplet buffer structure

  Alt 25. Sep 2017, 22:10
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.
Heiko
  Mit Zitat antworten Zitat
WiPhi

Registriert seit: 19. Feb 2015
90 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: FireDAC TFDIBInfo: Invalid clumplet buffer structure

  Alt 26. Sep 2017, 08:13
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:
    FIBServerProperties.QueryTimeout := 3;
    FIBServerProperties.ConnectTimeout := 5;
eine

Code:
EIBNativeException mit der Meldung [FireDAC][Phys][FB]Invalid clumplet buffer structure: buffer end before end of clumplet - clumplet too long
und ohne eine

Code:
EIBNativeException mit der Meldung '[FireDAC][Phys][FB]Unable to complete network request to host
Also kann es an der Datenbank nicht liegen.
Wer sucht, der findet. Wer länger sucht, findet mehr.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.428 Beiträge
 
Delphi 12 Athens
 
#6

AW: FireDAC TFDIBInfo: Invalid clumplet buffer structure

  Alt 26. Sep 2017, 08:35
Moin...
Nur mal so am Rande...
Hast du den FireDAC Client/Server Pack
https://www.embarcadero.com/de/app-d...ack-for-delphi
gekauft? In der Professional Version ist nur Lokal drin.

Die Meldung:
Zitat:
EIBNativeException mit der Meldung '[FireDAC][Phys][FB]Unable to complete network request to host
...riecht danach das du den Standard hast.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 03:23 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 by Thomas Breitkreuz