HeidiSQL - ein weiteres DB-Tool für Firebird

Themen rund um den praktischen Einsatz von Firebird. Fragen zu SQL, Performance, Datenbankstrukturen, etc.

Moderator: thorben.braun

Antworten
vr2
Beiträge: 271
Registriert: Fr 13. Apr 2018, 00:13

Dank Gerd https://firebirdforum.de/viewtopic.php?p=1354#p1354 bin ich darauf aufmerksam gworden, dass HeidiSQL seit kurzem auch Firebird unterstützt. Vielen Dank an Gerd! Ich habs leider erst ein Jahr später mitbekommen :oops: weil ich die Benachrichtigungsfunktionen im Forum bisher nicht nutze. Naja, jedenfalls hab ich mir die aktuelle Version geholt und teste. Heidi ist direkt mit Firebird 4 - Support eingestiegen, was schon mal super ist, denn da gibt es nicht viel. Außerdem freie und offene SW, also nicht mal Registrierung, damit man das Paket bekommt. Download hier: https://www.heidisql.com/ bzw https://github.com/HeidiSQL/HeidiSQL

Und hier die Änderungshistorie: https://github.com/HeidiSQL/HeidiSQL/commits/master, zum Nachschlagen, was sich da tut.

Nachdem bei Flamerobin kaum was passiert und ich RedSoft wegen Java und Zwangsregistrierung nicht nutze, ist das mal eine neue Fährte. Für MySQL und MariaDB ist HeidSQL das Beste, was man kriegen kann und weit verbreitet. Der Firebird-Support ist noch "experimental". Hat das schon jemand im Einsatz?
Zuletzt geändert von vr2 am Do 30. Mär 2023, 05:41, insgesamt 1-mal geändert.
Benutzeravatar
martin.koeditz
Beiträge: 528
Registriert: Sa 31. Mär 2018, 14:35

Hallo Volker,

danke für die Erinnerung. War mir tatsächlich auch nicht mehr bewusst. Ich werde das auf jeden Fall mal in Betracht ziehen.

Gruß
Martin
Martin Köditz
SynDesk SW GmbH
bfuerchau
Beiträge: 618
Registriert: Mo 7. Mai 2018, 18:09
Kontaktdaten:

Vielen Dank, ich werde das mal testen (lassen).
Bisher verwende ich immer noch dden IBExpert-Personal aus 2009, die letzte kostenlose Version.
Für das, was wir bisher brauchten, funktioniert das Wesentliche auch mit der FB3.0. An 4.0 müssen wir wohl mal irgendwann gehen, aber da ja schon 5.0 angekündigt ist, kann man sich das ja vielleicht sparen.
Groffy
Beiträge: 82
Registriert: Do 12. Apr 2018, 23:14

Hallo,

danke für die Empfehlung, ich werde es mir auch anschauen.


Gruß Ulrich
vr2
Beiträge: 271
Registriert: Fr 13. Apr 2018, 00:13

Da ist noch viel zu tun, erste Testergebnisse (HeidiSQL 12.4.0.6659, Win10, Firebird 4.0.3 2860 64 Bit)
  • beim Connect kann keine role und kein charset angegeben werden
  • nach dem connect kann ein init-Skript ausgeführt werden (set role, set names), das bewirkt aber nichts
  • es werden max. 50 Datensätze angezeigt
  • Metadatenextraktion bei Tabellen: Spaltendefaults und Indizes fehlen
  • Anzeige von Triggern bringt SQL-Fehler: Token unknown - SHOW
  • Anzeige und Editieren von Stored Functions, Stored Procedures, udfs nicht möglich: "Sie haben keine Berechtigung zu dieser Prozedur", egal ob man sysdba oder owner der DB und des Objekts ist
Falls ihr bei irgendeinem der Punkte besseres Verhalten habt, schreibts bitte hier rein. Danke!
Firethustra
Beiträge: 6
Registriert: Mi 20. Jan 2021, 19:45

Frohes neues Jahr 2026 wünsche ich noch nachträglich!

Verwendet jemand HeidiSQL auf Linux? Ich kann den Pfad zur Firebird-DLL (ich weiß, dass das Ding unter Linux keine DLL sondern eine .so ist) nicht auswählen. Auch ein Import über eine Settingsdatei funktionieren nicht. Die liegen unter /opt/firebird/lib
Ich habe sie auch schon in's .config-Verzeichnis von heidisql kopiert.

Was muss man da in den Einstellungen vornehmen, damit das funktioniert und man den Zugriff auf die Datenbanken bekommt?

Vielen Dank für eure Hilfe

Firethustra
vr2
Beiträge: 271
Registriert: Fr 13. Apr 2018, 00:13

Firethustra hat geschrieben: So 11. Jan 2026, 13:31 Frohes neues Jahr 2026 wünsche ich noch nachträglich!
Danke! Dir auch.
Verwendet jemand HeidiSQL auf Linux? Ich kann den Pfad zur Firebird-DLL (ich weiß, dass das Ding unter Linux keine DLL sondern eine .so ist) nicht auswählen.
Was muss man da in den Einstellungen vornehmen, damit das funktioniert und man den Zugriff auf die Datenbanken bekommt?
Wo suchen Linuxanwendungen denn default ihre libs? In Win hab ich die in solchen Fällen dahin gelegt, wo die exe ist, denn dort wird default zuerst nachgesehen. Hoffe, ich kann bald mehr dazu sagen, denn ich stelle gerade von Windows auf Linux um.
maurog
Beiträge: 54
Registriert: Di 13. Mai 2025, 21:50

ich habe mir HeidiSQL unter Linux selbst gebaut und ausgeführt.
Dabei zeigt sich, dass der InterBase/Firebird-Support im Quellcode aktuell auskommentiert ist.

Der von mir verwendete Code-Stand ist ein paar Wochen alt. Ich habe zwar die Library-Erkennung unter Linux korrigiert, das ändert jedoch nichts am eigentlichen Problem: Der Firebird/InterBase-Code ist derzeit nicht aktiv.

Zum Beispiel wird in TConnectionParameters.CreateConnection kein Connection-Objekt für ngInterbase erzeugt:

Code: Alles auswählen

function TConnectionParameters.CreateConnection(AOwner: TComponent): TDBConnection;
begin
  case NetTypeGroup of
    ngMySQL:
      Result := TMySQLConnection.Create(AOwner);
    {$IFDEF HASMSSQL}
    ngMSSQL:
      Result := TSqlSrvConnection.Create(AOwner);
    {$ENDIF}
    ngPgSQL:
      Result := TPgConnection.Create(AOwner);
    ngSQLite:
      Result := TSQLiteConnection.Create(AOwner);
    // ngInterbase:
    //   Result := TInterbaseConnection.Create(AOwner);
    else
      raise Exception.CreateFmt(_(MsgUnhandledNetType), [Integer(FNetType)]);
  end;
  Result.Parameters := Self;
end;

Auch beim Erzeugen von Query-Objekten ist ngInterbase auskommentiert:

Code: Alles auswählen

case NetTypeGroup of
  ngMySQL:   Result := TMySQLQuery.Create(Connection);
  ngPgSQL:   Result := TPGQuery.Create(Connection);
  ngSQLite:  Result := TSQLiteQuery.Create(Connection);
  // ngInterbase:
  //   Result := TInterbaseQuery.Create(Connection);
  else
    raise Exception.CreateFmt(_(MsgUnhandledNetType), [Integer(FNetType)]);
end;

Zusätzlich ist der eigentliche Verbindungsaufbau (TInterbaseConnection.SetActive) vollständig auskommentiert:

Code: Alles auswählen

{procedure TInterbaseConnection.SetActive(Value: Boolean);
var
  DriverId: String;
begin
  if Value then begin
    DoBeforeConnect;
    ...
end;}

Sobald man Firebird auswählt (auch mit korrekt gesetzter Client-Library), wird daher genau diese Exception ausgelöst.

Zu Linux und dynamischen Libraries

Unter Linux bestimmt der dynamische Linker (ld.so), wo Shared Libraries gesucht werden.
Dies geschieht primär über einen Cache (/etc/ld.so.cache), der mit ldconfig aus den Pfaden in /etc/ld.so.conf und /etc/ld.so.conf.d/ aufgebaut wird.

Ein Verzeichnis wie /opt/firebird/lib ist nicht automatisch Teil dieser Standard-Suche und muss explizit registriert werden.
Firebird legt zudem mehrere symbolische Links (libfbclient.so → libfbclient.so.2 → …) auf die eigentliche Library an, über die die Auflösung zur Laufzeit erfolgt.

Dokumentation

ld.so – Suchreihenfolge und Mechanismus:
https://man7.org/linux/man-pages/man8/ld.so.8.html

Shared Libraries HOWTO (ldconfig, Pfade, Cache):
https://www.linuxdoc.org/HOWTO/Program- ... aries.html

Unix.SE: Suchpfade & LD_LIBRARY_PATH:
https://unix.stackexch
Antworten