Unsichtbare Änderungen Teil 1

Verfasst am: Donnerstag, 31. Jul. 2014 um 22:58

Mal wieder habe ich mit Änderungen an der Bilddatenbank begonnen, die man über einen längeren Zeitraum kaum bemerken wird. Dieses mal geht es um die Datenbankzugriffskomponenten. Bisher habe ich dort immer ADO-Komponenten eingesetzt, die per ODBC eine Datenbankverbindung ermöglichten. Wie ich damit begonnen habe SQLite im BVASystem zu integrieren bemerkte ich schnell, das ich dafür andere Komponenten benötige. Da ich allerdings nicht alles doppelt programmieren möchte, habe ich mir überlegt eine eigene Datenbankschnittstelle zu entwickeln, die auf beide Datenbanksysteme zugreifen kann.

Mittlerweile ist der lesende Datenbankzugriff über die neue Datenbankschnittstelle möglich und ich habe bereits einen kleinen Teil der Funktionen des BVASystems umgestellt. Die einfachen Abfragen, mit denen zum Beispiel die Auswahllisten gefüllt werden, werden jetzt über die die neue Datenbankschnittstelle durchgeführt. Eigentlich ist es etwas schade, das die SQLite Datenbank noch leer ist. Denn die umgestellten Abfragen könnten nun ohne weiteren Programmieraufwand auch über SQLite ausgeführt werden.

Ein weiteres Problem versuche ich bei der Umstellung gleich mitzulösen. Beim BVASystem ist es so, das jedes eigenständige Programmmodul eine eigene Datenbankverbindung besitzt, da die ADO-Komponenten sicht Thread-Safe sind. Nutzt man über mehrere Threads hinweg eine einzelne Datenbankverbindung kommt es zu unkontrollierbaren Programmabstürzen. Mein Problem dabei ist, das in unterschiedlichen Modulen teilweise gleiche Abfragen durchgeführt werden. Da die Module nichts voneinander wissen, habe ich die gleiche Funktionalität doppelt programmiert. Dies ist sehr unschön und soll daher nun durch eine zentralere Lösung ersetzt werden.

Ich habe damit begonnen, alle Datenbankfunktionen in nur einem Objekt zusammenzufassen. Die jeweiligen Programmmodule erhalten jeweils eine Instanz von diesem Objekt und sind somit in der Lage, alle Datenbankfunktionen auszuführen. Auch diese Zentralisierung habe ich in den letzten beiden Wochen für das erste Programmmodul umgesetzt. Die weiteren werden in den nächsten Versionen folgen.

Da ich allerdings überhaupt kein Freund davon bin, nur unsichtbare Programmänderungen umzusetzen, habe ich in den letzten Tagen noch eine schöne neue Funktion implementiert. Es ist nun möglich, die Ansicht auf die Datenbank nach der manuellen Bildbewertung auszuführen. Ab jetzt wird es nicht mehr so langwierig/langweilig, wenn man Freunden Urlaubsbilder zeigen möchte. Einfach die Einschränkung auf die am besten bewerteten Fotos setzen und schon sind die ganzen, nicht so schönen Bilder, nicht mehr sichtbar. Die neue Funktion kann, wie immer, natürlich mit der neuen Entwicklerversion getestet werden.

Ansichtseinschränkung Manuelle Bildbewertung

Ansichtseinschränkung Manuelle Bildbewertung

Tags: , ,

Einen Kommentar schreiben