Was fehlt euch in Firebird?

Alles was nicht direkt zu den obigen Foren passt, findet hier Platz. Also Fragen zu allem was generell firebirdspezifisch ist oder sonst einen Bezug zum Forum hat.

Moderator: martin.koeditz

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

So 28. Jun 2020, 02:34

Hallo LitBigMan,
LitBigMan hat geschrieben:
Mo 22. Jun 2020, 15:29
Bei Interbase kann man beim Erstellen der Datenbank gleichzeitig den Alias anlegen lassen. Dieser kann auch per SQL dann nachträglich angelegt, geändert und gelöscht werden. Das würde bei der Kundeninstallation schon einiges erleichtern.
Aliase waren zumindest mal dafür gedacht, vom physischen Ort einer DB zu abstrahieren, ein Sicherheitsfeature. Jemand, der sich zu einer DB connecten kann, hat noch lange nicht physischen Zugriff auf die DB im Filesystem. Deshalb die Unterbringung in aliases.conf bzw databases.conf-file. Die Vergabe von Aliasen ist natürlich dann über SQL oder API sinnvoll, wenn ihr im laufenden Betrieb häufig Aliase anlegen/ändern müsst, zb weil ihr DBs ständig dynamisch erzeugt und wegwerft.

Grüße, Volker
Zuletzt geändert von vr2 am So 28. Jun 2020, 03:33, insgesamt 2-mal geändert.
vr2
Beiträge: 75
Registriert: Fr 13. Apr 2018, 00:13

So 28. Jun 2020, 03:01

Hallo Gerd,
Gerd hat geschrieben:
Fr 4. Okt 2019, 09:26
martin.koeditz hat geschrieben:
Fr 4. Okt 2019, 09:05
... Siehe auch http://www.firebirdfaq.org/faq209/. Ich hoffe das hilft.
Ja, das hilft natürlich.
csv-Import über externe Tabellen ist ein Kompromiss und mühsam, weil es Festformat-csv voraussetzt, und das hast Du eher selten oder musst es erst sicherstellen. csv-Import läuft eigentlich immer darauf hinaus, dass irgendeine Ebene das csv ansaugt, passend zerlegt und in eine Tabelle der DB einfügt. Dabei gibt es allerdings viele verschiedene Szenarien und Problemzonen. Der Ansatz mit den externen Tabellen ist zumindest konzeptionell modular, da man sich nicht frühzeitig auf Datentypen festlegen muss.

Problemzonen sind
* Längenbeschränkungen - Deine csv-Zeilen können nahezu beliebig lang werden, die externe Tabelle kann nicht beliebig lange Sätze aufnehmen. Spalten analog.
* Blobs
* Import beliebig strukturierter csv-Daten - die Zieltabelle muss schon passend existieren - oder Du macht einen Kompromiss und nimmst bspw eine Tabelle mit 80 Spalten a varchar(800) oder einer Spalte varchar(32K) grundsätzlich als Ziel, kann auch eine GTT sein, und zerlegst/verteilst von da aus weiter. Hast Du die Daten mal in der DB, ist der Rest nicht mehr schwer.

Ab Firebird 3 wären UDRs eine Alternative, da Du damit Zugriff auf Filesystem *und* DB haben kannst, aber die sind ziemlich low-level und mager dokumentiert, öffnen Dir allerdings Tür und Tor. Du könntest Dir dann in C++ oder Delphi eine generische UDR für den csv-Import schreiben, die die Zieltabelle entlang der csv-Struktur anlegt. Wenn Du C++ kannst, wär das eine Option, Wenn Du Delphi kannst, kommt es drauf an, denn die UDR-Doku und Ressourcen beziehen sich leider fast ausschließlich auf C++ - außer Du bist gut in beidem und kannst C++-Templates und Makros lesen und auf Delphi abbilden. Ich habe einige UDRs geschrieben, aber für sportlichere Sachen wie BLOBs in UDRs ist die Doku für Delphi einfach zu dünn.

Ansonsten kannst Du natürlich jede Client-Ebene einsetzen, die Zugriff auf Filesystem *und* DB hat und ein prepared statement absetzen kann, Webserver, Desktopanwendung.

Ein Bordmittel wie https://mariadb.com/kb/en/load_file/ wäre natürlich cool und man hätte nicht diesen ganzen Aufriss, dafür brauchst Du aber höhere Rechte, und das Verhalten bei Replikation ist auch nicht unproblematisch.

Grüße, Volker
bfuerchau
Beiträge: 176
Registriert: Mo 7. Mai 2018, 18:09

So 28. Jun 2020, 16:20

Auch ein "indexadvisor" für SQL's wäre nicht schlecht, so dass man daraufhin Indizes erstellen könnte, die der Server dann auch nimmt.
Bisher erstelle ich nur nach meiner eigenen automatisierten Methodik Indizes, die nach Analyse mit IBExpert, .Net-Provider zu 95% auch genommen werden.
Eine 100%ige Trefferquote wäre mir da schon lieber. :idea:
Gerd
Beiträge: 155
Registriert: Di 1. Okt 2019, 17:13

Do 2. Jul 2020, 13:17

@volker Ich melde mich in ein paar Tagen zu Deinem Beitrag. Geht gerade nicht. Tablet tu ich mir nicht an.

Viele Grüße
Gerd
Linux Mint 19.3 Cinnamon 4.4.8
Firebird 4.0 Beta 2, Superserver - ISQL: LI-T4.0.0.1963
Lazarus 2.0.8 - FPC 3.0.4
bfuerchau
Beiträge: 176
Registriert: Mo 7. Mai 2018, 18:09

Do 2. Jul 2020, 17:50

Schon mal angesehen?
https://de.talend.com/products/talend-open-studio/

Lesen fremder DB's, import in beliebige DB's, Konvertierungen, Abläufe, Regeln und automatisierbar.
Warum immer das Rad neu erfinden. Einer meiner Kunden ist höchst zufrieden (von dem habe ich den Hinweis).
Antworten