Home » Tutorials » Datenbanken » Einfache Datenbanken mit MyBase

Einfache Datenbanken mit MyBase

Zur Laufzeit

Tabelle zur Laufzeit erzeugen

Wenn man nicht, wie es bei unserem Beispiel nun der Fall wäre, eine leere Tabellendatei mit ausliefern will, sondern diese erst erzeugt werden soll, wenn das Programm ausgeführt wird, ist folgender Code zu verwenden:

procedure TForm1.FormCreate(Sender: TObject);
begin
  ClientDataSet1.FileName := ExtractFilePath(ParamStr(0))+'test.xml';
  if FileExists(ClientDataSet1.FileName) then
    ClientDataSet1.LoadFromFile(ClientDataSet1.FileName)
  else
    ClientDataSet1.CreateDataSet;
end;

Der Code wurde hier im OnCreate-Ereignis des Hauptfensters eingebaut, so dass er bei jedem Programmstart ausgeführt wird. Deshalb muss auch geprüft werden, ob die Datei bereits existiert. Denn sie soll ja nur neu angelegt werden, wenn es sie noch nicht gibt.

Tabellenstruktur zur Laufzeit definieren

Selbstverständlich kann man auch das, was wir ganz am Anfang von Hand in den Feld-Editor eingegeben haben, zur Laufzeit vornehmen. Wenn also ein ClientDataSet mit komplett leerem Feld-Editor verwendet wird, kann man diesen so füllen:

procedure TForm1.FormCreate(Sender: TObject);
begin
  ClientDataSet1.FileName := ExtractFilePath(ParamStr(0))+'test.xml';
  if FileExists(ClientDataSet1.FileName) then
    ClientDataSet1.Open
  else begin
    with ClientDataSet1.FieldDefs do begin
      Clear;
      Add('ID', ftAutoInc, 0, true);
      Add('Name', ftString, 40);
    end;
    ClientDataSet1.CreateDataSet;
  end;
end;

Der Code ist ähnlich dem im obigen Abschnitt, nur dass noch die Feld-Definitionen eingefügt werden. Dies geschieht genauso, wie es auch bei TTable der Fall wäre.

Auf Daten zur Laufzeit zugreifen

Innerhalb eines ClientDataSet lässt sich (wie bei TTable) mit First, Prior, Next und Last navigieren und mit Locate suchen. Auf einzelne Werte kann man über FieldByName oder über die Value-Eigenschaft der Feldobjekte zugreifen. Da dies keine Besonderheiten von MyBase sind, sei an dieser Stelle auf das Tutorial Datenbanken für Fortgeschrittene verwiesen, in dem diese Sachverhalte erklärt werden.