AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken XE7 FireDac TFDConnection.GetTableNames auf Firebird = abstract error
Thema durchsuchen
Ansicht
Themen-Optionen

XE7 FireDac TFDConnection.GetTableNames auf Firebird = abstract error

Ein Thema von Perlsau · begonnen am 30. Dez 2014 · letzter Beitrag vom 30. Dez 2014
 
Perlsau
(Gast)

n/a Beiträge
 
#1

XE7 FireDac TFDConnection.GetTableNames auf Firebird = abstract error

  Alt 30. Dez 2014, 07:24
Datenbank: Firebird • Version: 2.5 • Zugriff über: FireDac
Moin allerseits

Ich will mein IbDac zurück

Seit ein paar Tagen arbeite ich nun remote an einem Rechner im Ruhrgebiet, bis der Programmierer Mitte Januar aus'm Urlaub zurück ist. Im Verlauf des Projekts muß ich alle Tabellen zahlreicher Datenbanken verschiedenster DBMS auslesen, analysieren und die so gewonnenen Daten sichern, was ich im Falle einer Firebird-DB mit TFDConnection.GetTableNames versucht habe:

Delphi-Quellcode:
Function TInfoFireBird.Tabellen: Boolean;
Var
  Liste : TStrings;

begin
  Liste := TStrings.Create;
  Try
    Try
      FBCon.GetTableNames('','','',Liste,[osMy],[tkTable]);
Das liefert mir leider eine Fehlermeldung zurück, obwohl die Syntax korrekt zu sein scheint (kein Compilerfehler):
Im Projekt ****.exe ist eine Exception der Klasse EAbstractError mit der Meldung 'Abstrakter Fehler' aufgetreten.

Die drei leeren Strings sollen "normalerweise" beinhalten:
ACatalogName, ASchemaName beschränken Tabellennamen auf den Katalog und das Schema.
APattern ist das LIKE-Muster zum Filtern der Tabellennamen.


Wenn ich als APattern das Like-Zeichen % eintrage, kommt dieselbe Fehlermeldung:
FBCon.GetTableNames('','','%',Liste,[osMy],[tkTable]); Katalog- und Schemanamen gibt es ja bei Firebird nicht, das sind glaub ich Begriffe aus MySQL bzw. MsSQL

Falls ich den Rechner dort zum Absturz bringe, muß ich den Nachbarn anrufen, der die Kiste dann neu startet
Das muß ich natürlich unter allen Umständen vermeiden, ist ja quasi eine Bewährungsprobe


Die Verbindungsfunktion sieht so aus:
Delphi-Quellcode:
Function TInfoFireBird.Verbinden: Boolean;
begin
  Try
    FBCon.Connected := False;
    FBCon.Params.Clear;
    FBCon.Params.Append('DriverID=FB');
    FBCon.Params.Append('CharacterSet=UTF8');
    FBCon.Params.Append('Database=' + DateiName);
    FBCon.Params.Append('User_Name=' + DBI.DbUser);
    FBCon.Params.Append('Password=' + DBI.DbPass);
    FBCon.Params.Append('ExtendedMetadata=True');
    FBCon.DriverName := 'FB';
    FBCon.Connected := True;
    Result := True;
  Except
    on e:exception Do
    Begin
      Result := False;
      Fehlertext := 'Fehler bei Verbindung mit "' + DateiName + '": ' + e.Message;
    End;
  End;
end;
In der Hilfe ist ein Fehler: Die Syntax der Methode wird mit drei Strings als Parameter dargestellt, unten im Beispiel werden jedoch vier leere Strings als Parameter übergeben. Drei sind aber richtig, bei vieren kommt ein Compilerfehler.

Geändert von Perlsau (30. Dez 2014 um 07:31 Uhr)
  Mit Zitat antworten Zitat
 


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 02:18 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