Mit ‘SQLite’ getaggte Artikel

Datenbankanbindung und Protokollierung des FBK

Samstag, 03. April 2010

Um die Aktionen der Spieler für spätere Protokollzwecke speichern zu können, empfiehlt sich eine SQL-Datenbank. Die Speicherung in einfachen Textdateien behindert eine schnelle Recherche und die Verwaltung der Daten.

Aus diesem Grund habe ich dem FBK ein flexibles SQL-Interface hinzugefügt. Es kann sich an jedem beliebigen ADO.Net-Provider (SQL Server, MySQL, PostgreSQL, etc) anhängen. Da eine Voraussetzung des FBK die Fähigkeit zum XCopy-Deployment war, musste auch eine eingebettete SQL-Datenbank hinzugefügt werden.

Hier habe ich mich für System.Data.SQLite entschieden. Diese OpenSource-Datenbank ist eine Mischung aus nativen C-Code und verwaltetem C#-Code. Da nativer Code prozessorabhängig ist, existieren für jeden Prozessor verschiedene Assemblies.

Ein kleines Plugin ermittelt nun zum Start des FBK den Prozessortyp und kopiert das richtige Assembly an die richtige Stelle.

SQL-Konfiguration

Die Konfiguration der SQL-Anbindung ist zweistufig gestaltet.

  1. Die möglichen Datenbankverbindungen werden im Konfigurationsteil der Datenbank festgelegt. Über den Namen und dem zu nutzenden Typ, wird der ADO.Net Provider ausgewählt. Der ConnectionString definiert die Verbindung zur jeweiligen Datenbank.
  2. Die Konfiguration des jeweiligen Plugin referenziert nun auf den Namen der Datenbankverbindung. So kann eine Datenbankverbindung von mehreren Plugins verwendet werden und auch geschlossen verändert werden.

Das DetailedLog überprüft zu Beginn ob bereits die Tabellenstruktur existiert und erstellt gegebenenfalls die notwendigen Tabellen. In der momentanen Version wird nur der Start des FBK protokolliert. Damit ist der FBK im Falle einer SQLite-Konfiguration vollständig XCopy-Deployment fähig.

In den nächsten Wochen sollen die verschiedenen Spielereignisse abgefangen und protokolliert werden.

Die neueste Version ist auch unter http://depon.net/downloads/fbk.zip verfügbar.

SQLite und C#

Montag, 19. Oktober 2009

Gerade gefunden, werde ich mir nachher mal antun:

http://sqlite.phxsoftware.com/

Supported Platforms