Einzelnen Beitrag anzeigen

DualCoreCpu
(Gast)

n/a Beiträge
 
#10

AW: Einfache Tabelle mit TClientDataSet

  Alt 13. Jan 2019, 08:28
Der DBNavigator sieht so ok aus.

Der Haken und des X bzw. der Pfeil rechts sind nur aktiv, wenn es Änderungen gab.

Der Haken, um eine im Grid gemachte Änderung zu speichern, das X, um sie zu verwerfen. Rechts der Kringelpfeil kann genutzt werden, um 'ne Datenmenge neu zu laden. (Ist hier aber wohl nicht wirklich sinnvoll einzusetzen.)
Alles klar, danke!

Willst Du die Daten programmatisch in Deine Datenbank schreiben oder soll die Eingabe händisch (via Grid oder Eingabefelder) erfolgen?
Händisch über DBGrid oder Eigabefelder. Die programmatische Eingabe könnte aner später interessant werden, wenn ich Daten kopieren will.

Außerdem hätte ich gerne eine Anwendung, die mir die Erstellung einer Datenbanktabelle auch dann ermöglicht, wenn ich keine Serververbindung habe. Firebird-Explorer aber verlangt zuerst eine Verbindung mit dem Server, bevor ich beginnen kann. Der Menüpunkt Create Table ist dort solange noch keine Verbindung besteht, ausgegraut. Dann brauche ich allerdings für Firebird, Interbase und Co. ein Konvertierungstool von XML nach FDB.

Wenn die Daten nur in der Oberfläche erfasst werden sollen, dann ist der Quelltext nicht erforderlich.
Ist verstanden. Trotzdem wundert mich, das die Daten so nicht übernommen werden, ich hätte erwartet, die Namen meiner Felder noch mal in meinem Datensatz angezeigt zu sehen.

Das Speichern von Änderung funktioniert übrigens gewöhlich auch durch das Scrollen im Grid, 'ne Zeile vor, 'ne Zeile zurück mit den Cursortasten. Der letzte Satz wird also gespeichert, wenn man 'ne Zeile nach oben geht. Klar geht auch alles per Maus und DBNavigator. Verwerfen einer Eingabe geht auch per ESC-Taste.
Ok, verstanden.

Achso: Wenn sowas, wie newIndys Quelltext sinnvoll eingesetzt werden soll.
Hast Du die Daten schon irgendwie vorliegen, wenn ja, wie?
Oder willst Du sie irgendwie programmatisch von Tonträgern, aus MP3-Dateien ... einlesen?
Nein, habe ich nicht, ich gebe alles über mein DBGrid ein. Hätte gemäß dem Quelltext aber erwartet, dass ich meine Feldnamen in meiner Datentabelle angezeigt bekomme.

Delphi-Quellcode:
ClientDataSet1.Append;
ClientDataSet1.FieldByName('media').AsString := 'media';
ClientDataSet1.FieldByName('author').AsString := 'author';
ClientDataSet1.FieldByName('title').AsString := 'title';
if ClientDataSet1.State in [dsEdit, dsInsert] then ClientDataSet1.Post;
An das Feld media wird der String 'media' zugewiesen, an das Feld author der String 'author', an das Feld title der String 'title'. Diese Strings sollte ich doch dann in meiner Tabelle sehen?

Die Felder werden doch so hier angelegt:

Delphi-Quellcode:
    with ClientDataSet1.FieldDefs do begin
      Clear;
      Add('media', ftString, 3);
      Add('author', ftString, 30);
      Add('title', ftString, 40);
    end;
    ClientDataSet1.CreateDataSet;
Oder interaktiv im Designer zur Entwurfszeit.

Geändert von DualCoreCpu (13. Jan 2019 um 08:31 Uhr)
  Mit Zitat antworten Zitat