Zu dem leeren Formular:
Entweder, es sind keine Daten drin oder es fehlt eine Aktivierung/ Öffnen der Datenmenge oder es ist beim Öffnen ein Fehler aufgetreten, der irgendwie unterschlagen wird.
Nimm einen Datenbankexplorer und schau in die Tabellen rein oder trag damit gleich selbst Datensätze ein.
Konkrete Systeme
- SQLite, besonders wenn man Mobile Systeme im Blick hat
- Firebird, besonders nach der V 3.0, die nun endlich da ist. Interessant wegen der lokalen Server Engine. Programme können damit standalone betrieben werden oder als client/server.
Da diese mehrfach genannt wurden und von der Leistungsbeschreibung interessant sind, werde ich mir diese mal näher ansehen. Gibt es irgendwo Beispiele für FireBird? Bei den Delphi-Demos scheint nichts dabei zu sein.
Firebird sollte sehr kompatibel zu Interbase sein. Und nochmal, egal welches Relationale Database Management System RDBMS Du verwendest, die Handhabung(!) in Delphi ist haezu identisch*1. Die Entscheidung für ein RDBMS ist verwoben mit der Frage, welche Zugriffskomponenten in D verwendet werden (sollen), einschließlich der Zukunftsperspektive dieser Komponenten und ggF der
DLL Frage, die Du gestellt hast.
Wirkliche Unterschiede gibt es dann höchstens bei der Definition der Connection. Abhängig von der Technologie werden hier mal Dateien angegeben, bei anderen dann benannte
DB, ..
Das ist ja (u.a) genau ein Punkt, womit D mal angetreten ist, die (immergleichen) Datenbankkomponenten als Abstraktionsschicht zu beliebigen
DB. Siehe auch
ODBC, JDBC, ...
Ein Code und eine beliebige
DB dahinter.
*1Und zuletzt: So zu programmieren, dass die
DB austauschbar ist, wäre eine Strategie oder Vorgehensweise, da die verschiedenen Systeme zwar einen Standard unterstützen (nie zu 100%), am Ende aber doch auch eigene Wege gehen und unterschiedliche Anforderungen bedienen, wird mit dem Moment der Nutzung spezifischer
SQL Funktionen aus der austauschbaren
DB ein Zwang oder eine "Ehe" oder wie man das auch immer nennen möchte.
DLL spielen dabei auch eine Rolle, das könnte man so zusammenfassen. Jedes System braucht eine Clientkomponente in Form einer oder mehrerer
DLL. Die wird entweder mitgeliefert/verschenkt, gekauft, durch den Kunden selbst installiert oder ist das gleiche wie der Server (besonders SQLite, so ähnlich auch bei Firebird).
Zu allerletzt zu den Firebird Beispielen. Wenn Du irgendein Datenbankbeispiel nimmst und es ist nicht für Firebird, kannst Du es dennoch mit großer Wahrscheinlichkeit in Firebird umsetzen.
Z.B.
Code:
CREATE TABLE Employee (
Employee_ID int NOT NULL,
NAME varchar (50) NOT NULL,
DESCRIPTION varchar (250) NOT NULL
)
Kannst Du in vielen verschiedenen
DB verwenden. Nimm ein
SQL Tool Deiner Wahl, erzeuge damit eine
DB, lass das Script laufen und Du kannst mit dem Tutorial loslegen. Manchmal gibt es unterschiedliche Namen für die Typen, aber es wird Dir sicher nicht schwer fallen, ein INT gegen INTEGER oder NUMBER auszutauschen. Auf die Art kannst Du "beliebige" Tutorials verwenden. Es gibt natürlich einen Haufen anderer, kleiner Gemeinheiten, die dürften sich aber spätestens hier im Forum schnell und einfach lösen lassen. SQLite hat zum Beispeil eine recht ungewöhnliche Art der Spaltentypisierung. AutoInc Felder sind auch gern überall etwas anders, alles aber halb so wilrd...