Schlagwort-Archive: Firebird

„Auto“ – Grants für Generatoren und Exceptions in FB 3

Da ich in den letzten Monaten diverse Projekte von Firebird 2 auf Firebird 3 portiert habe, mussten auch einige Anpassungen an den diversen Datenbanken selbst vorgenommen werden. z.B.: Grants für Generatoren und Exceptions. Siehe auch: https://mathiaspannier.wordpress.com/2016/08/25/umstellung-einer-datenbank-auf-firebird-3/
Allerdings habe ich festgestellt, dass die Benutzung von Exceptions/Generatoren in Firebird 3 auch ohne zusätzlichen Grant funktioniert wenn man ein Firebird 2 Backup auf einem Firebird 3 Server wiederherstellt. Bei der Erstellung der Datenbank über ein SQL Skript ist das nicht so. Weiterlesen

Firebird Backup aller Datenbanken in einem Verzeichnis

Bei meiner täglichen Arbeit mit Delphi/Firebird erstelle und nutze ich viele unterschiedliche Datenbanken. Immer wenn eine Datenbank in den produktiv Einsatz übernommen wurde (also auf den produktiv Datenbankserver verschoben wurde)
musste ich für die neue Datenbank eine Zeile in meinem Backup-Skript einfügen. Das Skript läuft dann via Windows Aufgabenplaner vor der Komplettsicherung des Servers. Leider kam es immer wieder vor das ich Datenbanken vergessen habe oder Datenbanken die eigentlich nicht mehr im Einsatz waren auch nicht aus diesem Skript entfernt habe. Nach ein wenig Recherche im Netz habe ich mir dann ein Skript erstellt welches nach allen FDB-Dateien in einem Verzeichnis sucht und diese nacheinander sichert. Wird eine neue Datenbank in das Verzeichnis verschoben so wird sie automatisch bei der nächsten Skriptausführung mit gesichert.

Hier das Skript:

rem @echo off

set QuellVerzeichnis=C:\Database\
set AusgabeVerzeichnis=F:\Backup\
set FirebirdBinVerzeichnis=C:\Program Files (x86)\Firebird\Firebird_3_0\
set Servername=localhost

rem Ausgabeordner erstellen, falls nicht vorhanden
IF NOT EXIST %AusgabeVerzeichnis% MD %AusgabeVerzeichnis%

FOR %%q in ("%QuellVerzeichnis%*.fdb") do (
  "%FirebirdBinVerzeichnis%gbak" -user SYSDBA -password masterkey -b -v  "%Servername%:%%q" "%AusgabeVerzeichnis%%%~nq.fbk"
  )

 

Firebird backup/restore commands

Before updating an existing database I always make a backup and restore of my database. So I have not only a backup but also a simple validation check. I create a simple batch file to repeat this procedure every time I do an update:

C:
cd "\Program Files (x86)\Firebird\Firebird_2_0\bin\"
gbak -v -t -user SYSDBA -password masterkey -b "localhost:C:\Database\MyDatabase.fdb" "C:\Database\MyDatabase.fbk"
gbak -v -user SYSDBA -password masterkey -c "C:\Database\MyDatabase.fbk" "localhost:C:\Database\MyDatabase_test_restore_before_update.fdb"
Pause

Weiterlesen

Umstellung einer Datenbank auf Firebird 3

In einer laufenden Entwicklung habe ich eine Datenbank von Firebird 2.5 auf Firebird 3.0 umgestellt. Dabei musste ich nicht auf bestehende Daten Rücksicht nehmen, sondern konnte mein vorhandenes SQL Skript nutzen und die Datenbank neu aufbauen.
Dennoch gab es einige Punkte die zu beachten waren: Weiterlesen

Firebird „between“

Wie ist der Wertebereich einer „between“ Abfrage in Firebird SQL vergeben?

ALTER DOMAIN TEST_DOMAIN ADD CHECK (value between 1 and 5); 

Die möglichen Werte der Domain-Definition mit Check sind 1, 2, 3, 4 und 5. Alternativ könnte man auch den Vergleich „value >= 1 and value <= 5" verwenden.

How to EncodeDate with Firebird SQL

Wie kann man in Firebird bzw. in SQL aus einem String oder den numerischen Werten für Jahr, Monat und Tag ein „echtes“ Datum erzeugen? In Delphi gibt es den Befehl „EncodeDate“ (http://docwiki.embarcadero.com/Libraries/Berlin/en/System.SysUtils.EncodeDate). In Firebird den Befehl „cast“ (http://firebirdsql.org/refdocs/langrefupd21-intfunc-cast.html).
Weiterlesen

How to protect a Firebird table against direct writing?

In Firebird it is possible to insert/update data in a table even if the user did not have direct write access to this table. One way is to insert/update data via a stored procedure. In this case the user connected to the database has only execute permissions to the stored procedure. The stored procedure has the necessary insert/update permissions to the table. Weiterlesen

Neuanlage einer Firebird Datenbank

Nach langer Zeit habe ich die Möglichkeit ein komplett neues Projekt zu beginnen welches eine Firebird Datenbank benötigt. Da mein letztes „CREATE DATABASE“ etwas weiter zurück liegt musste ich mich wieder mit den Basics der Datenbank Erstellung beschäftigen. Nachfolgend ein paar SQL Statements für die Erstellung einer Datenbank (die ich im aktuellen Projekt verwendet habe) sowie für die ersten Inhalte im Sinne von Datenbankobjekte: Weiterlesen

Maximale Anzahl an (Socket/Firebird) Verbindungen

Wieviele Verbindungen (connections) kann Firebird verarbeiten? Gibt es eine Grenze und wenn ja wo ist diese Grenze?

Eine im Firebird implementierte Grenze gibt es nicht. Es gibt allerdings eine Grenze (in Windows?) die pro Port max. 1024 Verbindungen zulässt. Siehe auch: http://www.firebirdfaq.org/faq292/ D.h. sämtliche Anwendungen die über TCP/IP mit einem Server kommunizieren und diese Verbindungen offen lassen haben diese Grenze. Weiterlesen