Lazarus training for Delphi programmers



(German-language version below)

This workshop is ideal for Delphi programmers as an introduction to the world of Lazarus as a supplement to your Delphi skills. With over 20 years experience in Delphi programming we have now been implementing for the last 4 years all new projects exclusively with Lazarus, and provides a comprehensive insight into programming with Lazarus. 

Target group

Programmers, who …
... already have a number of years experience developing Delphi applications,
... wish to continue to use their existing Delphi VCL and Pascal knowledge,
... take advantage of a similar development environment with an almost identical programmming language,
... want to realize real multi-platform development,
... want to utilize the advantages of an active open source software and community,
... want to choose a future-proof and vendor-independent development environment for the next 10 to 20 years,
... want to save license fees and yet still keep up-to-date.

We will be focusing on the following topics:

1. Introduction to the world of Lazarus

  • Selecting the correct version, 32 or 64 Bt, CodeTyphon or standard Lazarus.
  • Installation, parallel installation of multiple versions, portable installation.
  • The key paths and files of a Lazarus installation.
  • Lazarus components: What is included, where you can get more, how does the install work?
  • Limitations when converting existing projects and component libraries.
  • Differences between LCL and VCL.
  • Comparison of Lazarus project files and Delphi projects.
  • Handling the Lazarus IDE; customization options.
  • Strategies to incorporate large parts of existing Delphi projects.

2. Avoid past mistakes

  • Does it always have to be components or there is another way.
  • Dynamic creation of controls and administration in separate lists.
  • Dynamic form construction.
  • Use OwnerDraw techniques to extend common components.
  • Implement complex components on a modular basis.
  • Constructing your own class libraries.
  • Should properties be set in the Object Inspector or in your code?
  • Automatically generate source code.
  • Assign events at runtime.
  • Global exception handling and trace logging.
  • Multilingual and UTF8 support.
  • A simple calendar application, modeled on the Google calendar.

3. Database techniques

  • Complex 3rd party DB access components or, even better, the integrated SQLDB components.
  • Interaction of SQLDB with Firebird and other databases.
  • Connection, Transaction, Dataset, Query etc.
  • Data source and data-aware components: advantages and disadvantages.
  • Alternative methods of data storage and display.
  • Object class model for data access without DataSource.
  • Generate and use automated SQL for insert/update/delete/select.
  • Reporting techniques with Lazarus and databases, report design, interaction with stored procedures.
  • Multilingual and UTF8 support in the database.
  • Concepts for high-performance database applications.
  • A simple database application, illustrating a simple invoicing software.

4. Multi-platform in practice

  • Installing Lazarus on other platforms.
  • What needs to be considered in order to use the source code on all platforms?
  • The major platform-specific basics.
  • Open the Lazarus sample project on Win32, Win64, Linux, Mac OSX, Raspberry Pi in the IDE, compile and test.
  • Simple Android applications using Lazarus.
  • Simple iOS Applications using Lazarus.
  • Simple web applications using Lazarus or directly using PHP and Firebird.

5. What's next

  • Classic menu structures in the age of tablets and alternatives.
  • Touch applications for retail, services and industry.
  • Integration of PDF technologies and external applications.
  • Advantages of a database-driven architecture.
  • Automatic distribution of exe, dll and setup files.
  • Automatic distribution of database structures and table contents.
  • Concepts for long term, team-friendly code.
  • Flexible database models, flexible foreign key and tree structures. 





Lazarus Schulung für Delphi Programmierer

Dieser Workshop ist ideal für Delphi-Programmierer als Einstieg in die Welt von Lazarus als Ergänzung zu Ihren Delphi-Kenntnissen. Mit über 20 Jahren Erfahrung in der Delphi-Programmierung setzen wir nun seit 4 Jahren alle neuen Projekte ausschließlich mit Lazarus um und bieten einen umfassenden Einblick in die Programmierung mit Lazarus.

Zielgruppe

Programmierer, die …
... bereits mehrjährige Erfahrung mit der Entwicklung von Delphi Applikationen haben
... ihr vorhandenes Delphi VCL und Object Pascal Know-How weiter nutzen möchten,
... die Vorteile einer ähnlichen Entwicklungsumgebung mit nahezu identischer Programmiersprache nutzen wollen
... eine echte Multiplattformentwicklung realisieren wollen
... die Vorteile einer aktiven Open Source Software und Community nutzen wollen
... eine zukunftssichere und herstellerunabhängige Entwicklungsumgebung für die nächsten 10 bis 20 Jahre auswählen wollen
... Lizenzkosten sparen wollen und trotzdem immer up-to-date bleiben wollen.

Schwerpunkte sind dabei folgende Themen:

1. Einstieg in die Lazarus Welt

  • Auswahl der richtigen Version, 32 oder 64 Bt, CodeTyphon oder Standard Lazarus.
  • Installation, parallele Installation mehrerer Versionen, portable Installation.
  • Die wichtigsten Pfade und Dateien einer Lazarus Installation.
  • Lazarus Komponenten: Was ist dabei, wo bekommt man weitere, wie funktioniert das Installieren?
  • Grenzen der Konvertierung vorhandener Projekte und Komponenten-Bibliotheken.
  • Unterschied LCL und VCL.
  • Lazarus Projekt Dateien im Vergleich zu Delphi Projekten.
  • Umgang mit der Lazarus IDE, Anpassungsmöglichkeiten.
  • Strategien, um große Teile vorhandener Delphi Projekte übernehmen zu können.

2. Fehler der Vergangenheit vermeiden

  • Müssen es immer Komponenten sein oder geht es auch anders.
  • Dynamisches Erzeugen von Controls und Verwalten in eigenen Listen.
  • Dynamischer Maskenaufbau.
  • Erweiterungen bekannter Komponenten mit OwnerDraw Techniken.
  • Komplexe Komponenten im Baukastenprinzip realisieren.
  • Aufbau eigener Klassenbibliotheken.
  • Eigenschaften im Objektinspektor setzen oder im Code?
  • Quellcode automatisch generieren.
  • Events zur Laufzeit zuweisen.
  • Globales Exception Handling und Ablaufprotokollierung.
  • Mehrsprachigkeit und UTF8 Unterstützung.
  • Eine einfache Kalenderanwendung, Vorbild der Google Kalender.

3. Datenbanktechniken

  • Komplexe 3rd Party DB Zugriffskomponenten oder doch besser die eingebauten SQLDB Komponenten.
  • Zusammenspiel SQLDB mit Firebird und anderen Datenbanken.
  • Connection, Transaction, Dataset, Query etc.
  • Datasource und datensensitive Komponenten Vorteile und Nachteile.
  • Alternative Wege der Datenspeicherung und -anzeige.
  • Objektklassenmodell für Datenzugriffe ohne Datasource.
  • Automatisiert SQL für insert/update/delete/select erzeugen und nutzen.
  • Reporttechniken mit Lazarus und Datenbanken, Reportdesign, Zusammenspiel mit Stored Procedures.
  • Mehrsprachigkeit und UTF8 Unterstützung in der Datenbank.
  • Konzepte für performante Datenbankanwendungen.
  • Eine einfache Datenbankanwendung, Vorbild eine einfache Faktura Software.

4. Multiplattform in der Praxis

  • Lazarus auf anderen Plattformen installieren.
  • Was sollte man beachten, um den Quellcode auch auf allen Plattformen nutzen zu können?
  • Die wichtigsten plattformspezifischen Grundlagen.
  • Lazarus Beispielprojekt auf Win32, Win64, Linux, Mac OSX, Raspberry Pi in der IDE öffnen, kompilieren und testen.
  • Einfache Android Anwendungen mit Lazarus.
  • Einfache iOS Anwendungen mit Lazarus.
  • Einfache Webanwendungen mit Lazarus oder direkt mit PHP und Firebird.

5. Wie geht es weiter

  • Klassische Menüstrukturen im Zeitalter der Tablets und Alternativen.
  • Touch Anwendungen für Einzelhandel, Dienstleistungen und Industrie.
  • Integration von PDF Technologien und Fremdanwendungen.
  • Vorteile einer database-driven Architecture.
  • Exe, DLL und Setup Dateien automatisiert verteilen.
  • Datenbankstrukturen und Tabelleninhalte automatisiert verteilen.
  • Konzepte für langfristig und im Team nutzbaren Code.
  • Flexible Datenbankmodelle, flexible Fremdschlüssel und Baumstrukturen. 




Firebird Developer Days



(German-language version below)

The Firebird Developer Days is the training event for Delphi and Lazarus developers who want to benefit from the knowledge of the IBExpert database experts. You can expect interesting talks covering all aspects of Firebird, IBExpert, Lazarus and Delphi development. The focus is on the practical application of the technologies and methods presented, which can also be implemented with other programming languages.

Overview of topics

Client development

  • Debugging a Delphi/Lazarus database application with the integrated debugger
  • Create appropriate events for additional protocols without the Debugger
  • Server-side monitoring of database applications
  • Establishing a 24/7 monitoring protocol on the server
  • Network monitoring of database communication at TCP/IP packet level
  • Performance comparison of different components: TxxTable, TxxDataset, TxxQuery etc.
  • Identify and assess automatically component-generated SQLs
  • Identify SQLs on the server based on source code additions in the Delphi/Lazarus source code
  • Automatically supplement own profiling methods in the Delphi/Lazarus source code
  • Autocommit or manual commit?
  • Use Prepare or not?
  • SQLs with or without parameters? Advantages and disadvantages!
  • Integrate block commands

Server development

  • Basic knowledge regarding the Firebird server functionalities and architecture
  • Detect inadequate transaction handling and assess impact
  • Locate long-running transactions in network operation, identify the cause
  • Techniques to end long-running transactions on the server side
  • Analyze trigger sequences and log the process
  • Measure and evaluate speed benefits of stored procedures
  • Create and debug stored procedures and triggers using IBExpert
  • Global database analysis: lack of primary keys, detection of duplicates, false and missing indices
  • Use calculated fields for maximum performance and manage display using permissions
  • Use data types and table definitions properly
  • Correct use of execute statement on external

Administrative tasks

  • Visualize a database model using IBExpert
  • Export a database model for version control in SVN or similar
  • Use IBExpert to set up versioning of stored procedures and triggers
  • Automate metadata comparison between the development database and the production database
  • Automate an automatic data synchronization between multiple databases using scripts
  • Data backup using Backup tools during normal operation
  • Optimize running time of the data backup
  • Shadow as an alternative high-speed backup method
  • Basic knowledge of replication as a real-time backup
  • Measure hardware speed and compare using IBExpert Benchmark
  • Tips and Tricks to optimize hardware and software for a Firebird Server

Firebird 3.0

  • What does the new multiprocessing capability in Firebird 3.0 really achieve?
  • Application possibilities of packages and internal functions
  • What needs to be considered when migrating to Firebird 3.0?
  • Benchmark comparison Firebird 2.5/Firebird 3.0

IBExpert

  • Tips and tricks for everyday work
  • Why write SQL commands yourself when these can be produced quickly and reliably using the IBExpert assistant
  • Software models: Developer Studio, Company Year Edition and Day Edition 





Firebird Entwickler Tage

Die Firebird Entwickler Tage sind das Trainingsevent für Delphi und Lazarus Entwickler, die vom Wissen der IBExpert Datenbank Experten profitieren möchten. Es erwarten Sie interessante Vorträge rund um die Entwicklung mit Firebird, IBExpert, Lazarus und Delphi. Der Fokus liegt dabei konsequent auf dem praktischen Einsatz der vorgestellten Technologien und Methoden, die auch mit anderen Programmiersprachen umgesetzt werden können.

Themen im Überblick

Client Entwicklung

  • Debuggen einer Delphi/Lazarus Datenbankanwendung mit dem integrierten Debugger
  • Erstellen geeigneter Events für zusätzliche Protokolle auch ohne Debugger
  • Serverseitiges Monitoring von Datenbankanwendungen
  • Einrichtung eines 24/7 Monitoring Protokolls im Server
  • Netzwerkmonitoring der Datenbankkommunikation auf TCP/IP Paketebene
  • Performancevergleich verschiedener Komponenten: TxxTable, TxxDataset, TxxQuery etc.
  • Automatisch von Komponenten erzeugte SQLs erkennen und bewerten
  • SQLs auf dem Server anhand von Quelltextergänzungen im Delphi/Lazarus Quellcode identifizieren
  • Eigene Profiling Methoden automatisiert im Delphi/Lazarus Quellcode ergänzen
  • Autocommit oder manuelles Commit?
  • Mit Prepare oder ohne Prepare?
  • SQLs mit oder ohne Parameter? Vor- und Nachteile!
  • Befehle in Blocks zusammenfassen

Server Entwicklung

  • Basiswissen zur Arbeitsweise und Architektur des Firebird Servers
  • Mangelhaftes Transaktionshandling erkennen und Auswirkungen bewerten
  • Zuordnung langlaufender Transaktionen im Netzwerkbetrieb, Identifikation des Verursachers
  • Techniken, um langlaufende Transaktionen serverseitig zu beenden
  • Trigger Sequenzen analysieren und Ablauf protokollieren
  • Geschwindigkeitsvorteile von Stored Procedures messen und bewerten
  • Stored Procedures und Trigger mit IBExpert erstellen und debuggen
  • Globale Datenbankanalyse: fehlende Primärschlüssel, doppelte, falsche und fehlende Indizes erkennen
  • Berechnete Felder performant einsetzen und Anzeige über Berechtigungen steuern
  • Datentypen und Tabellendefinitionen richtig einsetzen
  • Execute Statement on External richtig einsetzen

Administrative Aufgaben

  • Datenbankmodell mit IBExpert visualisieren
  • Datenbankmodell für eine Versionskontrolle in SVN o.ä. exportieren
  • IBExpert für Versionierung von Stored Procedures und Trigger einrichten
  • Automatisierter Metadatenabgleich zwischen Entwicklungsdatenbank und Produktionsdatenbank
  • Automatisierter Datenabgleich zwischen mehreren Datenbanken per Script automatisieren
  • Datensicherung über Backup Werkzeuge im laufenden Betrieb einsetzen
  • Laufzeit der Datensicherung optimieren
  • Shadow als alternative High Speed Sicherungsmethode
  • Basiswissen Replikation als Echtzeitbackup
  • Hardwaregeschwindigkeit messen und vergleichen mit IBExpert Benchmark
  • Tipps und Tricks für optimale Hardware und Software für einen Firebird Server

Firebird 3.0

  • Was bringt die neue Mehrprozessorfähigkeit in Firebird 3.0 wirklich?
  • Einsatzmöglichkeiten für Packages und Internal Functions
  • Was muss man bei einer Umstellung auf Firebird 3.0 beachten?
  • Benchmark Vergleich Firebird 2.5/Firebird 3.0

IBExpert

  • Tipps und Tricks für die tägliche Arbeit
  • Warum SQL Befehle selber schreiben, wenn diese im IBExpert Assistent schnell und zuverlässig erzeugt werden können
  • Softwaremodelle Developer Studio, Company Year Edition und Day Edition 




Bootcamp database web applications using Firebird



(German-language version below)

From the initial idea to deployment

The networked world today requires a powerful and flexible integration of mobile data acquisition devices in most commercial areas. While the apps in the Apple world hardly allow any really long-term application development without Xcode, in the Android world it is also difficult to be competitive without Android Studio. Alternative concepts such as the FMX implementation in more recent Delphi versions as well as Xamarin or similar frameworks promise multi-platform capability, the reality however is somewhat different. The first rollout of a native app requires a lot of know-how, and even seemingly trivial problems can cause long waiting times until the full version can be used by the customer.

If you are a software manufacturer and want to expand your ERP or business software by offering a flexible module for mobile devices, you will find several man-months or even man-years of development work, which can hardly be refinanced. Your customers expect such a feature on their own smartphones; however they are not willing to pay additional costs.

A decision to use only Android as a platform will not be acceptable for customers with Apple devices, so that the iOS platform for Apple also needs to be implemented. The development costs thus double and even a mundane task, such as mobile time tracking for field service technicians must also be implemented on these two platforms, in addition to the back-office solution for the office employees or on laptops, for which the source code cannot be used across multiple platforms.

Let’s stay with the example of mobile time tracking and consider alternative methods. Certainly, there are places where mobile phone reception is not always available or poor, but generally it can be assumes in most areas of Western Europe that a sufficiently good connection can be ensured. This is certainly a different matter in the Australian outback, but in such a case we would use a fully-fledged replicated database on a laptop, to enable access to even large amounts of data at any time.

In our 2-day training course Bootcamp database web applications using Firebird, you will learn all knowledge necessary to visualize data from a Firebird database via an Apache web server on Windows or Linux with minimal PHP knowledge.

A registration of the mobile device can be permanently assigned by URL or an individual view of the assigned data is displayed interactively using the Username and Password. In this way the sample application "Mobile Time Tracking" can display instructions for selection directly assigned to the user of the mobile device, minimizing errors such as booking time to the wrong jobs.

Simple control elements, known in the Delphi world as TLabel, TEdit, TMemo, TCombobox, TButton, TListbox, etc., are recorded on the website by the logic instructions, which are implemented in Firebird stored procedures, and filled with data from the database. The user can now enter numbers or strings depending upon the task, or simply trigger a Start- or Stop-booking with a simple click.

The resulting data is written back into the Firebird database by the Apache/PHP script. These can create messages at any time via triggers and events in the back office, and can alert the person responsible to new mobile data, or can be fully automated in collective bills.

You have no PHP experience? No problem, the PHP script used contains only around 30 lines and these will only altered in very few places during the whole training.

Do you lack basic knowledge of HTML controls? During the course, we will provide you with all the necessary basic knowledge, enabling you to extend this knowledge yourself at any time in the future.

You have never set up an Apache web server on Windows or Linux with PHP, or set up PHP access to Firebird? This is also part of our training. We’ll set up a virtual Windows server together. This server with the exact same configuration is offered by Hosteurope for EUR 9.90 a month.

How do you get the data rapidly from the local database to the Firebird database on the virtual server, without having to store all data there, and to make it publicly available in case of a faulty configuration? We explain the most important security aspects of such a Firebird configuration and show how to exchange data between the customer server and the server on the VM in near real-time using the push-pull principle.

Does this work even if the data is not stored locally in Firebird databases? Yes, we use IBEScript to show you basic IBEBlock scripts, which allow you to connect to any ODBC-compliant database to write the local data into your Firebird database vice versa.

How can the server-side application be used to send e-mails and generate PDFs, for example, to automatically generate order confirmations around the clock? We will show you how it is possible to use the IBEBlock Script on the server side. In addition to Windows for IBEscript.exe, we can also use Linux with Wine. 




Bootcamp Datenbankwebapplikationen mit Firebird

Von der Idee zur Umsetzung 

Die vernetzte Welt erfordert mittlerweile für nahezu sämtliche Geschäftsbereiche eine leistungsfähige und flexible Integration von mobilen Datenerfassungsgeräten. Während jedoch die Apps in der Applewelt kaum ohne Xcode wirklich langfristige Applikationsentwicklungen ermöglichen, ist man in der Android Welt ohne Android Studio ebenfalls kaum wettbewerbsfähig. Alternative Konzepte, wie die FMX Implementation in neueren Delphi Version ebenso wie Xamarin oder ähnliche Frameworks versprechen Multiplattformfähigkeit, aber die Realität sieht anders aus. Das erste Rollout einer nativen App bedarf einer Unmenge an Know-how und selbst scheinbar banale Probleme sorgen für lange Wartezeiten bis zur Nutzung der vollständigen Version durch den Kunden.

Wenn Sie als Softwarehersteller nun Ihre ERP- oder Branchensoftware um ein flexibles Modul für Mobilegeräte erweitern möchten, kommen auch bei einfachen Anwendungen mehrere Mannmonate oder sogar Mannjahre Entwicklungsarbeit zusammen, die sich kaum refinanzieren lassen. Ihre Kunden erwarten zwar eine derartige Funktion auf dem eigenen Smartphone, sind aber nicht bereit, dafür zusätzliche Kosten zu tragen. Eine Entscheidung für Android als Plattform wird von den Kunden mit Apple Geräten nicht akzeptiert und die iOS Plattform für Apple muss zusätzlich umgesetzt werden. Der Entwicklungsaufwand verdoppelt sich und selbst eine banale Aufgabe, wie zum Beispiel eine mobile Arbeitszeiterfassung für den Außendiensttechniker muss neben der Back Office Lösung für Mitarbeiter im Büro oder auf Laptops zusätzlich noch in 2 anderen Plattformen implementiert werden, bei denen der Quellcode auch nicht plattformübergreifend eingesetzt werden kann.

Bleiben wir beim Beispiel einer mobilen Arbeitszeiterfassung und denken wir über alternative Verfahren nach. Sicherlich gibt es Orte, an denen eine mobile Funkverbindung per Handy nicht immer gewährleistet ist, aber generell kann man in den meisten relevanten Gebieten Westeuropas davon ausgehen, dass eine ausreichend gute Verbindung gewährleistet ist. Im australischen Outback ist das sicherlich anders, aber hier würden wir eine vollwertige replizierte Datenbank auf einem Laptop einsetzen, um auch sehr große Datenmengen jederzeit vor Ort im Zugriff zu haben.

Im Rahmen unseres Bootcamps "Datenbankwebapplikationen mit Firebird" zeigen wir Ihnen innerhalb von 2 Tagen das gesamte Know-how, um Daten aus einer Firebird Datenbank über einen Apache Webserver auf Windows- oder Linux Basis mit minimalen PHP Kenntnissen zu visualisieren.

Eine Anmeldung des Mobilgeräts kann per URL fest vergeben werden oder die individuelle Sicht auf die zugeordneten Daten erfolgt interaktiv per Username und Password. So kann die Beispielanwendung "Mobile Zeiterfassung" direkt dem Benutzer des Mobilgeräts zugeordnete Aufträge zur Auswahl anzeigen und Fehleingaben wie Buchungen auf falsche Aufträge minimieren.

Einfache Kontrollelemente, in der Delphi Welt als TLabel, TEdit, TMemo, TCombobox, TButton, TListbox, etc. bekannt, werden durch die in Firebird Stored Procedures implementierten Logikanweisungen entsprechend der Anforderungen in der Webseite aufgenommen und durch Daten aus der Datenbank gefüllt. Der Anwender kann entsprechend der Aufgabe nun Zahlen oder Zeichenfolgen erfassen oder einfach eine Start oder Stop Buchung durch einen einfachen Klick auslösen.

Die Daten, die sich daraus ergeben, werden vom Apache/PHP Script wieder zurück in die Firebird Datenbank geschrieben. Diese können jederzeit via Trigger und Events im Backoffice Nachrichten erstellen und den Sachbearbeiter auf neue, mobil erfasste Daten hinweisen oder vollautomatisiert in Sammelrechnungen übernommen werden.

Sie haben keine PHP Erfahrung? Kein Problem, das benutzte PHP Script hat nur ca. 30 Zeilen und wird während der gesamten Schulung nur an ganz wenigen Stellen geändert.

Ihnen fehlen die Basiskenntnisse für die HTML Kontrollelemente? Wir vermitteln Ihnen im Rahmen des Bootcamps alle erforderlichen Basiskenntnisse, so dass Sie, sofern erforderlich, jederzeit durch eine spätere Recherche im Internet diese Kenntnisse erweitern können.

Sie haben noch nie einen Apache Webserver auf Windows oder Linux mit PHP oder den Zugriff von PHP auf Firebird eingerichtet? Auch dieser Punkt ist ein Bestandteil unseres Bootcamps. Wir richten gemeinsam einen virtuellen Windows Server ein. Dieser Server kann bei Hosteurope in genau dieser Konfiguration für 9,90 im Monat gemietet werden.

Wie bekommt man zeitnah die Daten von der lokalen Datenbank auf die Firebird Datenbank auf dem virtuellen Server, ohne sämtliche Daten dort zu lagern und im Fall einer fehlerhaften Konfiguration öffentlich verfügbar zu haben? Wir erklären die wichtigsten Sicherheitsaspekte einer solchen Firebird Konfiguration und zeigen, wie man im Push/Pull Prinzip Daten in nahezu Echtzeit zwischen einem Kundenserver und dem Server auf der VM austauscht.

Funktioniert das auch, wenn meine Daten lokal gar nicht in Firebird Datenbanken gespeichert werden? Ja, wir zeigen mit IBEScript grundlegende IBEBlock Scripte, mit denen Sie sich mit jeder ODBC-fähigen Datenbank verbinden können um die Daten von dort in die Firebird Datenbank oder aus der Firebird Datenbank zurück in Ihre Plattform zu schreiben.

Wie kann ich mit der Anwendung serverseitig E-Mails versenden und PDFs erzeugen, um zum Beispiel Auftragsbestätigungen automatisch rund um die Uhr zu erzeugen? Wir zeigen wir Ihnen, wie es mit Hilfe der IBEBlock Script serverseitig machbar ist. Wir setzen für IBEscript.exe neben Windows auch Linux mit Wine ein. 




IBExpert Firebird 3 Bootcamp



(German-language version below)

The Firebird 3 Bootcamp is for admins and developers who have been actively working with Firebird for at least 2 years. The focus is on upgrading to Firebird 3 and optimization of your own database environment (also for Firebird 2.x). You can expect interesting talks covering all aspects of Firebird, IBExpert, Lazarus and Delphi development. The focus is on the practical application of the technologies and methods presented, which can also be implemented with other programming languages.

Benefit from the knowledge of the IBExpert database experts.

Overview of topics

Client development

  • Debugging a Delphi/Lazarus database application with the integrated debugger
  • Create appropriate events for additional protocols without the Debugger
  • Server-side monitoring of database applications
  • Establishing a 24/7 monitoring protocol on the server
  • Network monitoring of database communication at TCP/IP packet level
  • Performance comparison of different components: TxxTable, TxxDataset, TxxQuery etc.
  • Identify and assess automatically component-generated SQLs
  • Identify SQLs on the server based on source code additions in the Delphi/Lazarus source code
  • Automatically supplement own profiling methods in the Delphi/Lazarus source code
  • Autocommit or manual commit?
  • Use Prepare or not?
  • SQLs with or without parameters? Advantages and disadvantages!
  • Integrate block commands

Server development

  • Basic knowledge regarding the Firebird server functionalities and architecture
  • Detect inadequate transaction handling and assess impact
  • Locate long-running transactions in network operation, identify the cause
  • Techniques to end long-running transactions on the server side
  • Analyze trigger sequences and log the process
  • Measure and evaluate speed benefits of stored procedures
  • Create and debug stored procedures and triggers using IBExpert
  • Global database analysis: lack of primary keys, detection of duplicates, false and missing indices
  • Use calculated fields for maximum performance and manage display using permissions
  • Use data types and table definitions properly
  • Correct use of execute statement on external

Administrative tasks

  • Visualize a database model using IBExpert
  • Export a database model for version control in SVN or similar
  • Use IBExpert to set up versioning of stored procedures and triggers
  • Automate metadata comparison between the development database and the production database
  • Automate an automatic data synchronization between multiple databases using scripts
  • Data backup using Backup tools during normal operation
  • Optimize running time of the data backup
  • Shadow as an alternative high-speed backup method
  • Basic knowledge of replication as a real-time backup
  • Measure hardware speed and compare using IBExpert Benchmark
  • Tips and Tricks to optimize hardware and software for a Firebird Server 

IBExpert Firebird Bootcamps: What our customers are saying




IBExpert Firebird 3 Bootcamp

Das Firebird 3 Bootcamp wendet sich an Admins und Programmierer, die mindestens 2 Jahre aktiv mit Firebird arbeiten. Dabei konzentrieren wir uns auf den Umstieg auf Firebird 3 und die Optimierung der eigenen Datenbank-Umgebung (auch für Firebird 2.x). Es erwarten Sie interessante Themen rund um die Entwicklung mit Firebird, IBExpert, Lazarus und Delphi. Der Fokus liegt dabei konsequent auf dem praktischen Einsatz der vorgestellten Technologien und Methoden, die auch mit anderen Programmiersprachen umgesetzt werden können.

Profitieren Sie vom Wissen der IBExpert Datenbank Experten.

Themen im Überblick

Client Entwicklung

  • Debuggen einer Delphi/Lazarus Datenbankanwendung mit dem integrierten Debugger
  • Erstellen geeigneter Events für zusätzliche Protokolle auch ohne Debugger
  • Netzwerkmonitoring der Datenbankkommunikation auf TCP/IP Paketebene
  • IBExpert Database Monitoring
  • Trace API einsetzen und auswerten
  • Performancevergleich verschiedener Komponenten: TxxTable, TxxDataset, TxxQuery etc.
  • Automatisch von Komponenten erzeugte SQLs erkennen und bewerten
  • SQLs auf dem Server anhand von Quelltextergänzungen im Delphi/Lazarus Quellcode identifizieren
  • Eigene Profiling Methoden automatisiert im Delphi/Lazarus Quellcode ergänzen
  • Autocommit oder manuelles Commit?
  • Mit Prepare oder ohne Prepare?
  • SQLs mit oder ohne Parameter? Vor- und Nachteile!
  • Befehle in Blocks zusammenfassen
  • Einfache Webanwendungen erstellen

Server Entwicklung und administrative Aufgaben für Entwickler

  • Basiswissen zur Arbeitsweise und Architektur des Firebird Servers
  • Mangelhaftes Transaktionshandling erkennen und Auswirkungen bewerten
  • Zuordnung langlaufender Transaktionen im Netzwerkbetrieb, Identifikation des Verursachers
  • Techniken, um langlaufende Transaktionen serverseitig zu beenden
  • Trigger Sequenzen analysieren und Ablauf protokollieren
  • Geschwindigkeitsvorteile von Stored Procedures messen und bewerten
  • Stored Procedures und Trigger mit IBExpert erstellen und debuggen
  • Globale Datenbankanalyse: fehlende Primärschlüssel, doppelte, falsche und fehlende Indizes erkennen
  • Berechnete Felder performant einsetzen und Anzeige über Berechtigungen steuern
  • Datentypen und Tabellendefinitionen richtig einsetzen
  • Execute Statement on External richtig einsetzen
  • Basiswissen Replikation als Echtzeitbackup
  • Datenbankmodell mit IBExpert visualisieren
  • Datenbankmodell für eine Versionskontrolle in SVN o.ä. exportieren
  • IBExpert für Versionierung von Stored Procedures und Trigger einrichten
  • Automatisierter Metadatenabgleich zwischen Entwicklungsdatenbank und Produktionsdatenbank
  • Automatisierter Datenabgleich zwischen mehreren Datenbanken per Script automatisieren

Administrative Aufgaben

  • Datensicherung über Backup Werkzeuge im laufenden Betrieb einsetzen
  • Laufzeit der Datensicherung optimieren
  • Shadow als alternative High Speed Sicherungsmethode
  • Hardwaregeschwindigkeit messen und vergleichen mit IBExpert Benchmark
  • Serverseitiges Monitoring von Datenbankanwendungen
  • Einrichtung eines 24/7 Monitoring Protokolls im Server
  • Reports, automatisierter Import und Export csv, pdf etc
  • Tipps und Tricks für optimale Hardware und Software für einen Firebird Server
  • Was bringt die neue Mehrprozessorfähigkeit in Firebird 3.0 wirklich?
  • Einsatzmöglichkeiten für Packages und Internal Functions
  • Was muss man bei einer Umstellung auf Firebird 3.0 beachten?
  • Benchmark Vergleich Firebird 2.5/Firebird 3.0
  • IBExpert Tipps und Tricks für die tägliche Arbeit
  • Warum SQL Befehle selber schreiben, wenn diese im IBExpert Assistent schnell und zuverlässig erzeugt werden können
  • Softwaremodelle Developer Studio, Company Year Edition und Day Edition
  • Firebird.conf optimieren  

IBExpert Firebird Bootcamps: Was unsere Kunden sagen




IBExpert und Firebird Power Workshop



(German-language version below)

Firebird Administrator intensive training with emphasis on speed, security and interfaces.

In our Firebird Power Workshop, we focus on the tasks that an administrator needs to perform to effectively run a Firebird server. The aim is to achieve the optimum speed of the hardware and software used, to guarantee maximum operational reliability, and to be optimally prepared for a breakdown by means of a suitable worst-case scenario. We will also concentrate on the independent implementation of simple requirements in the areas of import, export and reporting.

Overview of topics

1. Basics

After an introduction to the basic Firebird technology, the most important files and installation versions for Windows and Linux with Firebird versions 2.x and 3.x will be explained.

2. Hardware

  • Using suitable tools, the Firebird performance with the hardware/software combination used is measured and compared with other systems
  • Effects of Firebird versions and configurations for processors, memory, I/O load, and process priority
  • Comparison of the different I/O subsystem techniques HDD, SSD, SATA, M.2, NVME, RAID, SAN, IOPS, Bandwidth, Reads, Writes, etc.
  • Comparison of different CPU types, clock cycle, L1/L2/L3 cache, cores, Xeon E3/E5/E7
  • Expedient use of memory, RAM disk, temporary memory, ECC, DDR, clock cycle
  • Locate the bottleneck in your own server
  • Supplementary hardware for performance optimization
  • Recommendations for optimal hardware

3. Operating system

  • What optimizations can I make in Windows and Linux operating systems?
  • Comparison of a Firebird server running on a virtual machine or without virtualization
  • Check relevant drivers and adjust configuration settings
  • DLL version check and effects
  • Effects and adjustments Antivirus, backup and image software
  • Trojan-safe configuration
  • Operating systems recommendations for Firebird and dependencies

4. Backup/Restore

  • Data backup with gbak and other solutions
  • The most important backup/restore parameters
  • Partial backup of the database
  • IBExpert tools for backup, restore, e-mail message in case of errors, database dump
  • IBExpert tools for automating database comparisons, data and metadata using scripts
  • Shadow copy as a turbo backup
  • Suitable measures to prevent errors from the outset
  • Concurrent incremental backup
  • Basic replication knowledge

5. Troubleshooting

  • Detect errors in the database
  • Troubleshooting strategies and tools
  • Correct errors using transaction counter limit
  • Detect and correct incorrect metadata
  • Recognize and correct faulty data
  • Combine databases from different scripts
  • Errors opening the database and gfix
  • Errors after opening the database when accessing certain table data
  • IBExpert repair tools, Database Inside, if nothing else helps
  • IBExpert services and Hotline support for repairs

6. Interfaces

  • Automatically generate reports with IBExpert Scripting and store them as PDF files or send them by e-mail
  • Set up data interfaces for ODBC
  • Data export to ODBC, CSV, Excel, HTML, etc. using IBExpert Scripting
  • Data import from ODBC, CSV, Excel, HTML, etc. using IBExpert Scripting
  • Read or write access to SMTP, POP3 and IMAP e-mail
  • Automate data synchronization with script directly to MSSQL, Oracle, MySQL, etc.
  • Convert data tables from or to other platforms
  • Direct connection using additional tools to PayPal, Sharepoint, SAP, Salesforce, Magento, Dropbox, Google Calendar, Google Contacts, JSON, REST, XML etc.

7. Users and groups

  • Create, change and delete users with password
  • Create, change and delete roles
  • Differences users, roles and permissions in Firebird 2.x and Firebird 3.x
  • Transfering the user database when updating Firebird

8. Database performance

  • System tables and tools to detect long-running SQL queries
  • Identify and eliminate the impact of long-running transactions
  • Trace API and MON$ tables
  • Detect and create missing indices
  • Comprehending and using Expression Indices
  • Understanding and updating index statistics
  • Optimize index structures and avoid duplicates

9. Monitoring and Audit

  • Log database changes with IBExpert log tools
  • Log slow SQLs around the clock
  • What's it doing now? External tools at operating system level for file system and process logging

10. Tips and tricks




IBExpert und Firebird Power Workshop

Firebird Administrator intensiv-Training mit Schwerpunkt auf Geschwindigkeit, Sicherheit und Schnittstellen.

In unserem Firebird Power Workshop konzentrieren wir uns auf die Aufgaben, die ein Administrator für den effektiven Betrieb eines Firebird-Servers erfüllen muss. Ziel ist es, die optimale Geschwindigkeit der eingesetzten Hardware und Software zu erreichen, eine maximale Betriebssicherheit zu gewährleisten, sowie durch ein geeignetes Worst-Case-Szenario für einen Ausfall optimal vorbereitet zu sein. Auch auf die selbstständige Umsetzung einfacher Anforderungen im Bereich Import, Export und Reporting werden wir uns konzentrieren.

Inhalt

1. Grundlagen

Nach einer Einführung über die Basistechnologie werden die wichtigsten Dateien und Installationsversionen für Windows und Linux mit den Firebird Versionen 2.x und 3.x vermittelt.

2. Hardware

  • Durch geeignete Werkzeuge wird die Firebird Geschwindigkeit der eingesetzten Hardware/Software-Kombination gemessen und mit anderen Systemen verglichen
  • Auswirkungen der Firebird Versionen und Einstellungen für Prozessoren, Arbeitsspeicher, I/O-Last und Prozesspriorität
  • Vergleich der verschiedenen I/O-Subsystem-Techniken HDD, SSD, SATA, M.2, NVME, RAID, SAN, IOPS, Bandbreite, Reads, Writes, etc.
  • Vergleich der verschiedenen CPU-Typen, Takt, L1/L2/L3 Cache, Cores, Xeon E3/E5/E7
  • Sinnvoller Einsatz des Arbeitsspeichers, RAM Disk, Temporärspeicher, ECC, DDR, Takt
  • Den Flaschenhals im eigenen Server lokalisieren
  • Ergänzende Hardware für Performance-Optimierung
  • Empfehlungen optimaler Hardware

3. Betriebssystem

  • Welche Optimierungen kann ich im Betriebssystem Windows bzw. Linux vornehmen
  • Vergleich eines Firebird Servers beim Betrieb auf einer virtuellen Maschine oder ohne Virtualisierung
  • Relevante Treiber prüfen und Einstellungen anpassen
  • DLL Versionsprüfung und Auswirkungen
  • Auswirkungen und Anpassungen Antiviren-, Backup- und Image-Software
  • Trojaner-sichere Konfiguration
  • Empfehlungen Betriebssysteme für Firebird und Abhängigkeiten

4. Backup/Restore

  • Datensicherung mit gbak und anderen Lösungen
  • Die wichtigsten Backup/Restore Parameter
  • partielle Sicherung der Datenbank
  • IBExpert Werkzeuge für Backup, Restore, E-Mail Nachricht bei Fehlern, Datenbank Dump
  • IBExpert Werkzeuge für Datenbankvergleiche Daten und Metadaten über Scripte automatisieren
  • Shadowcopy als Turbobackup
  • Geeignete Maßnahmen, um Fehler von vornherein zu vermeiden
  • Mitlaufende inkrementelle Sicherung
  • Basiswissen Replikation

5. Fehler beheben

  • Fehler in der Datenbank erkennen
  • Strategien und Tools zur Fehlerbehebung
  • Fehler durch Transaktionszählergrenze beheben
  • Fehlerhafte Metadaten erkennen und beheben
  • Fehlerhafte Daten erkennen und beheben
  • Datenbanken aus verschiedenen Scripten zusammensetzen
  • Fehler beim Öffnen der Datenbank und gfix
  • Fehler nach dem Öffnen der Datenbank bei Zugriff auf bestimmte Tabellendaten
  • IBExpert Reparaturwerkzeuge, Database Inside, wenn nichts anderes hilft
  • IBExpert Dienstleistungen und Hotline Support für Reparaturen

6. Schnittstellen

  • Mit IBExpert Scripting automatisiert Berichte erzeugen und als PDF ablegen oder per E-Mail versenden
  • Datenschnittstellen für ODBC einrichten
  • Datenexport nach ODBC, CSV, Excel, HTML, etc. über IBExpert Scripting
  • Datenimport von ODBC, CSV, Excel, HTML, etc. über IBExpert Scripting
  • Lese- bzw. Schreibzugriff auf SMTP, POP3 und IMAP E-Mail
  • Datenabgleich mit Script direkt automatisieren an MSSQL, Oracle, MySQL, etc.
  • Datentabellen von oder in andere Plattformen konvertieren
  • Direkte Anbindung über Zusatztools auf PayPal, Sharepoint, SAP, Salesforce, Magento, Dropbox, Google Kalender, Google Kontakte, JSON, REST, XML etc.

7. Benutzer und Gruppen

  • Anlegen, ändern und löschen von Benutzern mit Kennwort
  • Anlegen, ändern und löschen von Roles
  • Unterschiede Benutzer, Roles und Rechte in Firebird 2.x und Firebird 3.x
  • Übernahme der Benutzerdatenbank beim Firebird Update

8. Datenbank Performance

  • Systemtabellen und Werkzeuge, um langlaufende SQL Abfragen zu erkennen
  • Auswirkungen langlaufender Transaktionen erkennen und beheben
  • Trace API und MON$ Tabellen
  • Fehlende Indizes erkennen und erstellen
  • Expression Indizes verstehen und benutzen
  • Indexstatistik verstehen und aktualisieren
  • Indexstrukturen optimieren und Dubletten vermeiden

9. Monitoring und Audit

  • Datenbankänderungen protokollieren mit IBExpert Log Werkzeugen
  • langsame SQLs rund um die Uhr protokollieren
  • Was macht er denn jetzt schon wieder? Externe Werkzeuge auf Betriebssystemebene für Filesystem und Prozessprotokollierung

10. Tipps und Tricks




IBExpertFunctionLibrary

(German-language version below)

A user-defined function (UDF) is utilized to perform tasks that Firebird can't. It is an external database function written entirely in another language, such as C++ or Pascal, to perform data manipulation tasks that not directly supported by Firebird/InterBase.

As a lot of Firebird-based software developers know, these functions help you to extend the SQL language as required. But on the downside, the binary implementation requires a compiler on the platform where you want to use the Firebird server. A UDF library available for Win64 can neither be used on Win32 nor on Linux.

Up to Firebird 2.5 the UDF was an extremely powerful implementation, but unfortunately also a critical point of failure. If any of your binary code was not as stable as it should be, especially in multi-user environments, it could crash the Firebird server completely. All connected users would be disconnected, and even though the database file itself should not contain a binary error after this happened, any user application had to be restarted. This might not have been such a big problem with the Firebird Classic version, but today, using a binary UDF is no longer recommended.

This was the reason for the Firebird Project to introduce the new and more stable UDR implementation. A UDR appears to be similar to a UDF, but it is loaded in a considerably more stable way on the server process, and an error in the implementation does not typically crash the server.

Since Firebird 3, it is recommended to use a UDR rather than a UDF and, starting with Firebird 4, the use of UDFs is deactivated by default in the firebird.conf file.

A further implementation for the functional extension of Firebird was also introduced with Firebird 3: stored functions. Similar to the UDR/UDF functions, a stored function can be implemented in the same way as it can be when using a stored procedure, but the concept of functions provides only one result based on the specified input params.

As you might know, there are widely-used UDF implementations, which are all too often completely outdated, such as the FreeAdhocUDF library, which has not been changed or improved during the last 12 years. Libraries like rFunc or FreeAdhocUDF often use very high know-how standards but, based on Firebird’s built-in functions such as substring, the parameter structure is not one-to-one compatible. If you want to use your existing Firebird 2.x-based software in a new non-UDF-based Firebird version 3 or 4, you will need a replacement.

For this reason we have developed a complete new set of functions called IBExpertFunctionLibrary.

IBExpertFunctionLibrary Enterprise Maintenance Subscription

Your company licenses the source code of the library as it is, but it is only permitted to use this with databases created by your company for internal or customer use.

This includes access to all new versions of the source code and up to 5 new functional implementations for 12 months.

These functional implementations are limited to the language features already possible in the Firebird language. External software required for the implementation, such as DLLs/SO or other libraries, are not covered by this, but on request, this can also be implemented.

Pricing

    IBExpertFunctionLibrary Enterprise Maintenance Subscription: EUR 990.00 

The current version 1.0 already basically covers almost all of the functions currently available in FreeAdhocUDF and rFunc. Some functions cannot be implemented or it no longer make any sense to implement them, but these will be available as empty non-functional prototypes, so that a call will not result in an error. 




IBExpertFunctionLibrary

Eine benutzerdefinierte Funktion (UDF) wird verwendet, um Aufgaben auszuführen, die Firebird nicht ausführen kann. Es ist eine externe Datenbankfunktion, die komplett in einer anderen Sprache, wie z.B. C++ oder Pascal, geschrieben wurde, um Datenänderungen durchzuführen, die nicht direkt von Firebird/InterBase® unterstützt werden.

Wie viele Firebird Softwareentwickler wissen, helfen Ihnen diese Funktionen dabei, die SQL-Sprache nach Bedarf zu erweitern. Der Nachteil ist jedoch, dass die binäre Implementierung einen Compiler auf der Plattform erfordert, auf der Sie den Firebird Server verwenden. Eine UDF-Bibliothek, die für Win64 verfügbar ist, kann weder unter Win32 noch unter Linux verwendet werden.

Bis zu Firebird 2.5 war die UDF eine extrem leistungsfähige Implementierung, aber leider auch ein kritischer Fehlerpunkt. Wenn einer Ihrer Binärcodes nicht so stabil war, wie er sein sollte, insbesondere in Mehrbenutzerumgebungen, konnte er den Firebird Server komplett zum Absturz bringen. Alle Client-Verbindungen wurden getrennt, und obwohl die Datenbankdatei selbst keinen Binärfehler enthalten sollte, musste jeder Client neu verbunden werden. Dies mag in der Firebird Classic Version kein so großes Problem gewesen sein, aber heute wird die Verwendung einer binären UDF nicht mehr empfohlen.

Dies war der Grund für das Firebird Projekt, die neue und stabilere UDR-Implementierung einzuführen. Eine UDR scheint einer UDF ähnlich zu sein, aber sie wird auf eine wesentlich stabilere Art und Weise in den Serverprozess geladen, und ein Fehler in der Implementierung führt normalerweise nicht zum Absturz des Servers.

Seit Firebird 3 wird empfohlen, eine UDR statt einer UDF zu verwenden und ab Firebird 4 ist die Verwendung von UDFs in der Datei firebird.conf standardmäßig deaktiviert.

Eine weitere Implementierung für die funktionale Erweiterung von Firebird wurde ebenfalls mit Firebird 3 eingeführt: Stored Functions. Ähnlich wie die UDR/UDF-Funktionen kann eine Stored Function auf die gleiche Weise wie eine Stored Procedure implementiert werden, aber das Konzept der Funktionen liefert nur ein Ergebnis basierend auf den angegebenen Eingabeparametern.

Wie Sie vielleicht wissen, gibt es weit verbreitete UDF-Implementierungen, die allzu oft völlig veraltet sind, wie z. B. die FreeAdhocUDF-Bibliothek, die in den letzten 12 Jahren weder geändert noch verbessert wurde. Bibliotheken wie rFunc oder FreeAdhocUDF verwenden oft sehr hohe Know-How-Standards, aber, basierend auf Firebirds eingebauten Funktionen wie z.B. substring, ist die Parameterstruktur nicht eins-zu-eins kompatibel. Wenn Sie Ihre bestehende Firebird 2.x-basierte Software in einer neuen, nicht UDF-basierten Firebird Version 3 oder 4 verwenden möchten, benötigen Sie einen Ersatz.

Aus diesem Grund haben wir einen komplett neuen Satz von Funktionen mit dem Namen IBExpertFunctionLibrary entwickelt.

IBExpertFunctionLibrary Enterprise Maintenance Subscription

Ihr Unternehmen lizenziert den Quellcode der Bibliothek, wie er ist, aber es ist nur erlaubt, diesen mit Datenbanken zu verwenden, die von Ihrem Unternehmen für den internen oder Kundengebrauch erstellt wurden.

Dies beinhaltet den Zugriff auf alle neuen Versionen des Quellcodes und bis zu 5 neue Funktionsimplementierungen für 12 Monate.

Diese funktionalen Implementierungen sind auf die Sprachfeatures beschränkt, die bereits in der Firebird-Sprache möglich sind. Externe Software, die für die Implementierung benötigt wird, wie z.B. DLLs/SO oder andere Bibliotheken, sind davon nicht abgedeckt, können aber auf Anfrage ebenfalls implementiert werden.

Preisgestaltung

IBExpertFunctionLibrary Enterprise Maintenance Subscription: EUR 990,00

Die aktuelle Version 1.0 deckt im Grunde bereits fast alle Funktionen ab, die derzeit in FreeAdhocUDF und rFunc verfügbar sind. Einige Funktionen können nicht implementiert werden oder es macht keinen Sinn mehr, sie zu implementieren, aber diese werden als leere nicht-funktionale Prototypen verfügbar sein, so dass ein Aufruf nicht zu einem Fehler führt.